python 保存对象_保存对象dict()的Python对象

这是我为我发现的一个问题创建的测试用例。在

由于某些原因,B()中的dict()'l'似乎没有保存正确的值。在我的Linux.7.04版本中,请参见下面的python.7.04。在class A():

name = None

b = None

def __init__(self, name, bname, cname, dname):

self.name = name

print "A: name", name

self.b = B(name, bname, cname, dname)

print "A self.b:", self.b

class B():

name = None

l = dict()

c = None

def __init__(self, name, bname, cname, dname):

self.aname = name

self.name = bname

print " B: name", bname

self.c = C(bname, cname, dname)

self.l["bb"] = self.c

print " B self:", self

print " B self.c:", self.c

print " B self.l[bb]:", self.l["bb"], "<<< OK >>>"

def dump(self):

print " A: name", self.aname

print " B: name", self.name

for i in self.l:

print " B: i=", i, "self.l[i]", self.l[i], "<<< ERROR >>>"

class C():

name = None

l = dict()

d = None

def __init__(self, bname, cname, dname):

self.bname = bname

self.cname = cname

print " B: name", bname

print " C: name", cname

print " C self:", self

def dump(self):

print " B name:", self.bname

print " C name:", self.cname

a1 = A("a1", "b1", "c1", "d1")

a2 = A("a2", "b2", "c2", "d2")

a3 = A("a3", "b3", "c3", "d3")

a1.b.dump()

a1.b.c.dump()

a2.b.dump()

a2.b.c.dump()

a3.b.dump()

a3.b.c.dump()

我的机器上的输出:

^{pr2}$

据我所知,以上几行:B: i= bb self.l[i] <__main__.c instance at> <<< ERROR >>>

应该都包含一个唯一的C()实例,就像在初始化时看到的那样,而不是最后创建的实例(请参见&lt;&lt;&lt;OK&gt;&gt;行)。在

这里发生了什么事?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值