找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3244|回复: 1

[求助] 请教一个单例模式赋值问题

1

主题

1

帖子

7

积分

贫民

积分
7
mesa_zhang 发表于 2016-4-23 13:10:13 | 显示全部楼层 |阅读模式
直接贴代码:
# -*- 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, 请教这是为什么呢?
谢谢

回复

使用道具 举报

0

主题

11

帖子

11

积分

贫民

积分
11
随心 发表于 2016-5-5 22:52:31 | 显示全部楼层
建议去看看深拷贝和浅拷贝!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表