用法:
inspect.signature(callable, *, follow_wrapped=True, globals=None, locals=None, eval_str=False)
返回给定
callable
的Signature
对象:>>> from inspect import signature >>> def foo(a, *, b:int, **kwargs): ... pass >>> sig = signature(foo) >>> str(sig) '(a, *, b:int, **kwargs)' >>> str(sig.parameters['b']) 'b:int' >>> sig.parameters['b'].annotation <class 'int'>
接受广泛的 Python 可调用对象,从普通函数和类到
functools.partial()
对象。对于使用字符串化注释 (
from __future__ import annotations
) 在模块中定义的对象,signature()
将尝试使用inspect.get_annotations()
自动 un-stringize 注释。global
、locals
和eval_str
参数在解析注解时传递到inspect.get_annotations()
;有关如何使用这些参数的说明,请参阅inspect.get_annotations()
的文档。如果无法提供签名,则引发
ValueError
,如果不支持该类型的对象,则引发TypeError
。此外,如果注释是字符串化的,并且eval_str
不为假,则对 un-stringize 的eval()
调用可能会引发任何类型的异常。函数签名中的斜杠 (/) 表示它之前的参数是positional-only。有关详细信息,请参阅有关 positional-only 参数的常见问题解答条目。
3.5 版中的新函数:
follow_wrapped
范围。经过False
得到一个签名callable
具体来说 (callable.__wrapped__
不会用于解开装饰的可调用对象。)3.10 版中的新函数:
globals
,locals
, 和eval_str
参数。注意
在 Python 的某些实现中,某些可调用对象可能不是可自省的。例如,在 CPython 中,C 中定义的一些内置函数不提供有关其参数的元数据。
相关用法
- Python inspect.Parameter.replace用法及代码示例
- Python inspect.Parameter.kind用法及代码示例
- Python inspect.Signature.from_callable用法及代码示例
- Python inspect.isasyncgenfunction用法及代码示例
- Python inspect.isawaitable用法及代码示例
- Python inspect.BoundArguments.apply_defaults用法及代码示例
- Python inspect.BoundArguments用法及代码示例
- Python inspect.Parameter.kind.description用法及代码示例
- Python inspect.formatargspec用法及代码示例
- Python inspect.Signature.replace用法及代码示例
- Python inspect.getcallargs用法及代码示例
- Python scipy integrate.trapz用法及代码示例
- Python int转exponential用法及代码示例
- Python integer转string用法及代码示例
- Python scipy interpolate.CubicHermiteSpline.solve用法及代码示例
- Python scipy interpolate.CubicSpline.solve用法及代码示例
- Python int.from_bytes用法及代码示例
- Python scipy integrate.cumtrapz用法及代码示例
- Python scipy interpolate.PchipInterpolator.solve用法及代码示例
- Python int.bit_length用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 inspect.signature。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。