python实例化对象中的变量_为什么通过python默认变量初始化变量会在对象实例化期间保持状态?...

我今天碰到了一个有趣的python错误,在这个错误中,反复实例化一个类似乎是保持状态的。在以后的实例化调用中,变量已被定义。

我将这个问题归结为下面的类/外壳交互。我知道这不是初始化类变量的最佳方法,但它的行为肯定不应该是这样的。这是一个真正的bug还是一个“特性”?:天

测试者.py:class Tester():

def __init__(self):

self.mydict = self.test()

def test(self,out={}):

key = "key"

for i in ['a','b','c','d']:

if key in out:

out[key] += ','+i

else:

out[key] = i

return out

Python提示:Python 2.6.6 (r266:84292, Oct 6 2010, 00:44:09)

[GCC 4.2.1 (Apple Inc. build 5664)] on darwin

>>> import tester

>>> t = tester.Tester()

>>> print t.mydict

{'key': 'a,b,c,d'}

>>> t2 = tester.Tester()

>>> print t2.mydict

{'key': 'a,b,c,d,a,b,c,d'}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值