我希望能够判断一个函数是在Python 2.7中声明f()还是f(**kwargs)在Python 2.7中,所以我知道它是否可以接受任意关键字参数......但是invoke.getargspec.args()在两种情况下都会返回[].有办法做到这一点吗?
你需要看一下inspect.getargspec().keywords.如果None没有**kwargs给出.
varargs和keywords是
*和**参数或的名称None.
演示:
>>> import inspect
>>> def foo(): pass
...
>>> def bar(**kwargs): pass
...
>>> inspect.getargspec(foo).keywords is None
True
>>> inspect.getargspec(bar).keywords is None
False
>>> inspect.getargspec(bar).keywords
'kwargs'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |