按 name/identifier 访问默认函数参数值
Access default function argument values by name/identifier
考虑以下简化示例:
def f(string, offset=0):
print(string[offset:] if isinstance(offset, int) else string[f.__defaults__[0]:])
f('Hello', 'two')
虽然 f.__defaults__
返回的元组可以按相应顺序访问所有默认参数值(即 按位置 ),但我想知道是否有办法从函数中通过参数(此处:'offset'
)的 name/identifier 访问它们 ...
您可以使用inspect.signature
获取给定函数的参数,从该映射中您可以获取命名参数的默认值:
import inspect
def f(string, offset=0):
print(string[offset:] if isinstance(offset, int) else string[f_params['offset'].default:])
f_params = inspect.signature(f).parameters
考虑以下简化示例:
def f(string, offset=0):
print(string[offset:] if isinstance(offset, int) else string[f.__defaults__[0]:])
f('Hello', 'two')
虽然 f.__defaults__
返回的元组可以按相应顺序访问所有默认参数值(即 按位置 ),但我想知道是否有办法从函数中通过参数(此处:'offset'
)的 name/identifier 访问它们 ...
您可以使用inspect.signature
获取给定函数的参数,从该映射中您可以获取命名参数的默认值:
import inspect
def f(string, offset=0):
print(string[offset:] if isinstance(offset, int) else string[f_params['offset'].default:])
f_params = inspect.signature(f).parameters