class Amimal(object):
__a = None
__b = True
def __new__(cls,*args,**kwargs):
if not cls.__a:
cls.__a = object.__new__(cls) # 调用基类的__new__方法创建对象,修改类属性__a
return cls.__a
def __init__(self,name,age,color):
if Amimal.__b:
self.name = name
self.age = age
self.color = color
Amimal.__b = False # 修改类属性__b
def __str__(self):
return "名称:%s,年龄:%s,颜色:%s"%(self.name,self.age,self.color)
# 创建三个对象,分别给不同的属性
A = Amimal("kitty",1,"black")
B = Amimal("Stiyy",2,"gray")
C = Amimal("Cathy",3,"white")
print(A) # 名称:kitty,年龄:1,颜色:black
print(B) # 名称:kitty,年龄:1,颜色:black
print(C) # 名称:kitty,年龄:1,颜色:black
[Python] 单例模式
于 2019-03-16 11:32:58 首次发布