本文介绍了我如何可以读取功能的签名,包括默认参数值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给定一个函数对象,我怎么能得到它的签名?例如,对于
高清myMethod的(firt,第二,第三='东西'):
通过
我想获得myMethod的(firt,第二,第三='东西')
。
解决方案
进口检查DEF美孚(A,B,X ='胡说'):
通过打印(inspect.getargspec(富))
#ArgSpec(参数= ['一','B','X'],可变参数=无,关键字=无,默认值=('胡说',))
不过,请注意, inspect.getargspec()
是德$ P $因为Python 3.0。pcated
3.0 - 3.4建议 inspect.getfullargspec()
。请参阅:
3.5+建议 inspect.signature()
。请参阅:
Given a function object, how can I get its signature? For example, for:
def myMethod(firt, second, third='something'):
pass
I would like to get "myMethod(firt, second, third='something')"
.
解决方案
import inspect
def foo(a,b,x='blah'):
pass
print(inspect.getargspec(foo))
# ArgSpec(args=['a', 'b', 'x'], varargs=None, keywords=None, defaults=('blah',))
However, note that inspect.getargspec()
is deprecated since Python 3.0.
3.0 - 3.4 recommends inspect.getfullargspec()
. See: https://docs.python.org/3.4/library/inspect.html#inspect.getargspec
3.5+ recommends inspect.signature()
. See: https://docs.python.org/3.5/library/inspect.html#inspect.getargspec
这篇关于我如何可以读取功能的签名,包括默认参数值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!