python的幽灵问题之初始化同一个对象
class HBus:
"""备受幽灵乘客折磨的校车"""
def __init__(self, passengers=[]):
self.passengers = passengers
def pick(self, name):
self.passengers.append(name)
def drop(self, name):
self.passengers.remove(name)
print("------------------------------")
bus2 = HBus()
bus2.pick('2li')
print(bus2.passengers)
print("------------------------------")
bus3 = HBus()
print(bus3.passengers)
结果:print(bus3.passengers)居然是2li
因为:当我们再创建一辆 空 车的时候,发现他默认会绑定前面的类留下的值
解决方法:
class TwilightBus:
def __init__(self, passengers=None):
if passengers is None:
self.passengers = []
else:
self.passengers = list(passengers) # 这里只是浅复制
def pick(self, name):
self.passengers.append(name)
def drop(self, name):
self.passengers.remove(name)
参考:https://blog.csdn.net/weixin_44038881/article/details/106739102
---当才华撑不起你的野心的时候,请努力!---跑起来。
浙公网安备 33010602011771号