获取函数可变默认参数

3

如何在Python 3中获取可变默认参数元组?

def foo(x=[]):
    pass

失败的尝试:

foo.func_defaults

错误:

AttributeError: 'function' object has no attribute 'func_defaults'
1个回答

3

你应该使用__defaults__,像这样

def foo(x=[]):
    x.append(1)

foo()
foo()
print(foo.__defaults__)
# ([1, 1],)

引用自数据模型

__defaults__

一个元组,包含那些有默认值的参数的默认参数值,如果没有参数有默认值,则为None

这意味着,当您有一个没有默认参数的函数时,__defaults__将为None

def foo():
    pass

print(foo.__defaults__)
# None

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接