我尝试使用字典创建树。这是我的代码:
class Class1():
a=0
d={}
d.clear()
class Class2():
b=0
def __init__(self,data):
b=data
def __init__(self,data):
a=data
for j in range(3):
self.d[j]=self.Class2(j)
print(j)
print(self.d.keys())
dict1={}
for i in range(4):
dict1[i]=Class1(i)
我得到的是:
0
dict_keys([0])
1
dict_keys([0, 1])
2
dict_keys([0, 1, 2])
0
dict_keys([0, 1, 2])
1
dict_keys([0, 1, 2])
2
dict_keys([0, 1, 2])
0
dict_keys([0, 1, 2])
1
dict_keys([0, 1, 2])
2
dict_keys([0, 1, 2])
0
dict_keys([0, 1, 2])
1
dict_keys([0, 1, 2])
2
dict_keys([0, 1, 2])
我期望在每个父dict中有一个全新的空子dict,但是从第二个循环开始,dict在创建时已经有了数据。我检查了对象id,第二个" Class1"对象的词典只是第一个,第三个和第四个。
这只发生在dict对象上,其他对象如string或int不受影响。
有谁知道为什么会这样?感谢。
我的Python是3.6.2