def func(item,item_list=[]):
item_list.append(item)
print(item_list)
#['iphone']
func("iphone")
#['iphone', 'huawei']
func("huawei")
#['oppo', 'xiaomi']
func("xiaomi",item_list=["oppo"])
#['iphone', 'huawei', 'huawei2']
func("huawei2")
class Mytest:
def func(self,item,item_list=[]):
item_list.append(item)
print(item_list)
#['iphone']
Mytest().func("iphone")
#['iphone', 'huawei']
Mytest().func("huawei")
#['oppo', 'xiaomi']
Mytest().func("xiaomi",item_list=["oppo"])
#['iphone', 'huawei', 'huawei2']
Mytest().func("huawei2")
总结:python函数默认对象只会初始化一次
本文探讨了Python中函数默认参数的工作原理及其潜在陷阱,特别是在使用可变对象作为默认值时的行为。通过具体示例展示了默认参数如何只在函数定义时初始化一次,并在多次调用时保持状态,而非每次调用时重新初始化。
1857

被折叠的 条评论
为什么被折叠?



