【发布时间】:2014-05-31 16:43:41
【问题描述】:
如何在 Python 3 中获取可变的默认参数元组?
def foo(x=[]):
pass
尝试失败:
foo.func_defaults
错误:
AttributeError: 'function' object has no attribute 'func_defaults'
【问题讨论】:
标签: python python-3.x arguments signature
如何在 Python 3 中获取可变的默认参数元组?
def foo(x=[]):
pass
尝试失败:
foo.func_defaults
错误:
AttributeError: 'function' object has no attribute 'func_defaults'
【问题讨论】:
标签: python python-3.x arguments signature
你应该像这样使用__defaults__
def foo(x=[]):
x.append(1)
foo()
foo()
print(foo.__defaults__)
# ([1, 1],)
引自data model,
__defaults__
一个元组包含那些具有默认值的参数的默认参数值,如果没有参数具有默认值,则为
None。
这意味着,当你有一个没有默认参数的函数时,__defaults__ 将是None
def foo():
pass
print(foo.__defaults__)
# None
【讨论】: