python可变类型作为默认参数的隐患
class Company: # 可变类型的默认参数的隐患 def __init__(self, name, staffs=[]): self.name = name self.staffs = staffs A = Company('tom') B = Company('jack') # staffs列表共同指向的是类Company默认的staff的地址 print(id(A.staffs), id(B.staffs)) # 打印的地址一样
class Company: def __init__(self, name, staffs=None): self.name = name if (staffs == None): self.staffs = [] else: self.staffs = staffs A = Company('tom') B = Company('jack') print(id(A.staffs), id(B.staffs)) # 2者打印的地址就不一样了
posted on 2022-01-11 15:30 Shine-Zhong 阅读(33) 评论(0) 编辑 收藏 举报