【发布时间】:2019-12-01 14:14:28
【问题描述】:
Python 选择遵循只评估函数签名一次的设计决策。所以这段代码:
def test(x=[]):
x.append(5)
return x
print(test())
print(test())
打印:
[5]
[5, 5]
我知道可以使用None作为默认值,如果是None.,可以更改函数内部的参数值
我如何编写一些代码来改变test 的行为,从而在每次调用该函数时重新计算默认参数?该解决方案可以包含装饰器并使用类作为默认值。
【问题讨论】:
标签: python python-3.x function metaprogramming mutability