在每次调用时清除可选参数
Clearing an optional argument at each call
你会如何定义一个函数,它接受一个可选参数并附加到它而不需要提供参数?代码类似于
def myfunc(value, values=[]):
values.append(value)
return values
print(myfunc("item"))
print(myfunc("item"))
预期输出为
['item']
['item']
而不是
['item']
['item', 'item']
避免使用可变(字典、列表等)作为默认参数。
相反,您可以执行以下操作。
def myfunc(value, values=None):
if values is None:
values = []
values.append(value)
return values
print(myfunc("item"))
print(myfunc("item"))
你会如何定义一个函数,它接受一个可选参数并附加到它而不需要提供参数?代码类似于
def myfunc(value, values=[]):
values.append(value)
return values
print(myfunc("item"))
print(myfunc("item"))
预期输出为
['item']
['item']
而不是
['item']
['item', 'item']
避免使用可变(字典、列表等)作为默认参数。
相反,您可以执行以下操作。
def myfunc(value, values=None):
if values is None:
values = []
values.append(value)
return values
print(myfunc("item"))
print(myfunc("item"))