如何在Python中为函数设置默认参数值?
Python对默认参数值的处理是可以困扰大多数新Python程序员的几件事之一。
导致问题的原因是使用“可变”对象作为默认值。也就是说,可以就地修改的值,例如列表或字典。
如果未提供第二个参数,则每次调用该函数时都会创建一个新列表,因此EXPECTEDOUTPUT为:
[12] [43]
定义函数后,将创建一个新列表,并且在每个后续调用中都使用相同的列表。
定义函数时,Python的默认参数只计算一次,而不是每次调用函数时才计算。这意味着,如果您使用可变的默认参数并对其进行了突变,那么您将来也将对该对象也进行了突变,以供将来对函数的所有调用。
我们应该怎么做
每次调用该函数时,都要使用默认的arg来表示未提供任何参数,从而创建一个新对象(通常不选择它是一个不错的选择)。
示例
def func(data=[]):
data.append(1)
return data
func()
func()
def append2(element, foo=None):
if foo is None:
foo = []
foo.append(element)
return foo
print(append2(12))
print(append2(43))输出结果
[12] [43]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短