如何在Python中获取任何方法的关键字/位置参数

时间:2016-03-16 10:11:07

标签: python python-2.7

我是Python的开发人员,并且使用不同的技术。

因此,有时我真的觉得应该有一个method可以告诉任何方法的KEYWORD ARGUMENTPOSITIONAL ARGUMENTS

示例:

response(url="http://localhost:8080/core",data={"a":"12"},status=500)

响应有很多keyword/positional arguments,例如url,data, status

响应方法可以有更多关键字参数,我在上面的示例中没有提到。所以我想知道一个方法的所有关键字参数总数。

因此,如果有人知道 Python 中可以告诉关键字参数的任何方法,请分享。

1 个答案:

答案 0 :(得分:1)

试试inspect模块:

In [1]: def a(x, y , z): pass
In [2]: import inspect
In [3]: inspect.getargspec(a)
Out[3]: ArgSpec(args=['x', 'y', 'z'], varargs=None, keywords=None, defaults=None)

或使用装饰者:

def a(f):
    def new_f(*args, **kwds):
        print "I know my arguments. It:"
        print "args", args
        print "kwds", kwds
        print "and can handle it here"
        return f(*args, **kwds)
    return new_f
@a
def b(*args, **kwargs):
    pass

b(x=1, y=2)