相关疑难解决方法(0)

获取python函数内的参数名称列表

可能重复:
在python中获取方法参数名称

有没有一种简单的方法可以在python函数中获取参数名称列表?

例如:

def func(a,b,c):
    print magic_that_does_what_I_want()

>>> func()
['a','b','c']
Run Code Online (Sandbox Code Playgroud)

谢谢

python parameters

241
推荐指数
4
解决办法
24万
查看次数

在Python中获取方法参数名称

鉴于Python函数:

def a_method(arg1, arg2):
    pass
Run Code Online (Sandbox Code Playgroud)

如何提取参数的数量和名称.即,鉴于我有一个func的引用,我想要返回func.[something]("arg1","arg2").

这种情况的使用场景是我有一个装饰器,我希望使用方法参数的顺序与它们为实际函数出现的顺序相同.也就是说,当我调用aMethod("a","b")时,装饰器看起来会打印出"a,b"吗?

python introspection decorator python-datamodel

214
推荐指数
10
解决办法
12万
查看次数

有没有办法知道参数的值是否是默认值与用户指定的值?

我正在寻找像Lisp的arg-supplied-p变量一样的东西,以帮助区分默认值和用户指定的相同值.

例:

def foo(a=10):
    pass
Run Code Online (Sandbox Code Playgroud)

我想在foo中知道它是否像这样调用:

foo()
Run Code Online (Sandbox Code Playgroud)

或者像这样:

foo(10)
Run Code Online (Sandbox Code Playgroud)

或者甚至喜欢这样:

foo(a=10)
Run Code Online (Sandbox Code Playgroud)

最后2个对我来说是同义词; 我不需要知道那个细节.我已经仔细查看了检查模块,但getargspec为所有3个调用返回的结果完全相同.

python arguments

4
推荐指数
2
解决办法
207
查看次数