只执行一次初始化工作
- 在每次使用类名()创建对象时,Python的解释器会自动调用两个方法:
- __new__分配空间
- __init__对象初始化
- 对__new__方法改造之后,每次都会得到第一次被创建对象的引用
- 但是:初始化方法还会被再次调用
需求
- 让初始化动作只被执行一次
解决办法
- 定义一个类属性init_flag标记是否执行过初始化动作,初始值为False
- 在__init方法中,判断init_flag,如果为False就执行初始化动作
- 然后将init_flag设置为True
- 这样,再次自动调用__init__方法时,初始化工作就不会被再次执行了