gpt4 book ai didi

对象创建时未创建 Python 新列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:50 25 4
gpt4 key购买 nike

<分区>

我正在 python 中使用 OOP 进行一些练习,我遇到了一个我的非计算机科学家头脑无法理解的问题。我确定这只是因为我对 OO 缺乏经验,但我似乎无法在任何地方找到答案。

所以我有三个类(class)。一个名为 tester 的类,它应该包含一个名为 group 的唯一对象,该对象应该包含一个名为 atom 的对象列表。我的问题是,每当我创建多个组时,它们似乎都具有相同的列表对象。因此,每当我将一个原子附加到列表时,它就会附加到所有组的列表中。我的代码是:

count = 0
testers = []

class atom:
def __init__(self):
pass

class group:
myList = list()
def __init__(self):
pass

def createAtom(self):
self.myList.append(atom())


class tester:
def __init__(self):
self.myGroup = group()

for k in range(4):
testers.append(tester())
print testers[k].myGroup

for t in testers:
t.myGroup.createAtom()
print t.myGroup.myList

我希望这会为每个组创建一个新列表,并且会向每个组添加一个原子。这反而会创建如下输出。

<__main__.group instance at 0x02C2E058>
<__main__.group instance at 0x02C2E0A8>
<__main__.group instance at 0x02C2E0F8>
<__main__.group instance at 0x02C2E148>
[<__main__.atom instance at 0x02C2E170>]
[<__main__.atom instance at 0x02C2E170>, <__main__.atom instance at 0x02C2E198>]
[<__main__.atom instance at 0x02C2E170>, <__main__.atom instance at 0x02C2E198>, <__main__.atom instance at 0x02C2E1C0>]
[<__main__.atom instance at 0x02C2E170>, <__main__.atom instance at 0x02C2E198>, <__main__.atom instance at 0x02C2E1C0>, <__main__.atom instance at 0x02C2E1E8>]

单个列表包含所有四个原子。我为我可能糟糕的代码道歉。如果有任何帮助,我正在使用 python portable 2.7.5.1。任何对此的见解将不胜感激。

谢谢

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com