如何在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 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短