如何在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 教师闺蜜祝福语简短