# new:创建对象自动调用
# new原理:返回值,返回值对象,当前类 -- 条件满足了 init
# 实例对象 -- instance
class Person(object):
cls_shuxing = None
# 控制只做一次初始化的开关 -- 开关打开 -- 表示判断
is_First = True
def __new__(cls, *args, **kwargs):
if cls.cls_shuxing == None:
# 创建对象 -- new
cls.cls_shuxing = super().__new__(cls)
return cls.cls_shuxing
def __init__(self, name,age, sex,id):
if self.is_First == True: # 实现只做一次初始化
self.name = name
self.age = age
self.sex = sex
self.id = id
# 关掉开关
self.is_First = False
def __str__(self):
return '名字是%s,年龄是%s,性别是%s,id是%s' % (self.name, self.age, self.sex, self.id)
dafan = Person('大凡', 18, '女',id=100)
print(dafan)
erfan = Person('二凡', 20, '男', id=110)
print(erfan)