如何在Python 3中获取可变的默认参数元组?
def foo(x=[]):
pass
尝试失败:
foo.func_defaults
错误:
AttributeError: 'function' object has no attribute 'func_defaults'
答案 0 :(得分:3)
您应该使用__defaults__
,就像这样
def foo(x=[]):
x.append(1)
foo()
foo()
print(foo.__defaults__)
# ([1, 1],)
引自data model,
<强> __默认__ 强>
包含具有默认值的参数的默认参数值的元组,如果没有参数具有默认值,则为
None
。
这意味着,如果您的某个函数没有默认参数,那么__defaults__
将为None
def foo():
pass
print(foo.__defaults__)
# None