class Dog(object):
__first_new = True
__instance = None
__first_init = True
# 完成了单例
def __new__(cls, new_name):
if cls.__first_new:
cls.__instance = object.__new__(cls)
cls.__first_new = False
return cls.__instance
else:
return cls.__instance
def __init__(self, new_name):
if Dog.__first_init: # 这个位置不能用self.__first因为self指向的是 实例对象 而不是 类对象
self.name = new_name
Dog.__first_init = False
a = Dog("旺财")
b = Dog("二郎神的孝天犬")
c = Dog("哈士奇")
print(id(a))
print(id(b))
print(id(c))
print(a.name)
print(b.name)
print(c.name)
__first_new = True
__instance = None
__first_init = True
# 完成了单例
def __new__(cls, new_name):
if cls.__first_new:
cls.__instance = object.__new__(cls)
cls.__first_new = False
return cls.__instance
else:
return cls.__instance
def __init__(self, new_name):
if Dog.__first_init: # 这个位置不能用self.__first因为self指向的是 实例对象 而不是 类对象
self.name = new_name
Dog.__first_init = False
a = Dog("旺财")
b = Dog("二郎神的孝天犬")
c = Dog("哈士奇")
print(id(a))
print(id(b))
print(id(c))
print(a.name)
print(b.name)
print(c.name)