|
直接贴代码:
# -*- coding: utf-8 -*-
class Singleton(object):
def __new__(cls):
if not hasattr(cls, '_instance'):
cls._instance = object.__new__(cls)
return cls._instance
class UserDefine(object):
pass
class Test(Singleton):
def __init__(self):
self.b = UserDefine()
class A(object):
def __init__(self):
self.a = 5
temp = Test()
self.c = temp.b
a1 = A()
a2 = A()
print(id(a1.c))
print(id(a2.c))
b1 = Test()
b2 = Test()
print(id(b1.b))
print(id(b2.b))
运行结果:
41593968
41654448
41654512
41654512
请教问题:
类Test 是一个单例模式的类,他的成员变量b是一个自定义的类,在外部两个实例b1, b2访问成员变量b都是同一个id。
但是在类A中,使用类Test的成员变量b来赋值自己的成员变量c,却得到两个不同的id, 请教这是为什么呢?
谢谢
|
|