gpt4 book ai didi

python - 如何创建 "individual"对象

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

我的任务其实很简单。也许我太习惯于 C++ 而看不到我的错。我有两个类(class)和一个 list 。该列表应包括由 class1 构成的所有对象,而 class1 还包括 class2 的所有对象的列表。所以我们有:

All_Objects1 = []     # For class1 objects

class class1 (object):
All_Objects2 = [] # For class2 objects

class class2 (object):
name = ""
number = 0

现在我这样做:

# class1 objects:
obj1= class1()
obj2= class1()

# class2 objects
obj3 = class2()
obj3.name, obj3.number = "hello world", 10
obj4 = class2()
obj4.name, obj3.number = "hello europe", 20
obj5 = class2()
obj5.name, obj3.number = "hello asia", 30
obj6 = class2()
obj6.name, obj3.number = "hello africa", 40

# Attach object3 and object4 to object1
obj1.All_Objects2.append(obj3)
obj1.All_Objects2.append(obj4)

# Attach object5 and object6 to object2
obj2.All_Objects2.append(obj5)
obj2.All_Objects2.append(obj6)

# Attach obj1 and obj2 to the global list.
All_Objects1.append(obj1)
All_Objects1.append(obj2)

最后我做了一个打印来检查是否所有东西都在它所属的地方:

print (len(All_Objects1[0].All_Objects2)) # Should be 2.
for i in All_Objects1[0].All_Objects2:
print (i.name) # Should be world and europe.

print (len(All_Objects1[1].All_Objects2)) # Should be 2.
for i in All_Objects1[1].All_Objects2: # Should be asia, africa.
print (i.name)

现在的问题是,每个 object2 都在每个 object1 中,我不知道为什么。

在我的实际程序中,我做了这样的事情,在 C++ 中实际可行的是:

#pseudo
for i in all_information:
if (i==Keyword):
currentObject = class1()
All_objects.append(currentObject)

然后我的列表中会有一些独立的对象。但在 Python 中,我想我无法以某种方式覆盖“currentObject”。

非常感谢您的帮助。

最佳答案

在 Python 中有些东西可能会犯这个错误,首先你使用的是哪个版本的 Python?

我还没有在我的控制台上测试过,但我猜这是一个初始化问题,关于你如何声明列表,我宁愿建议使用更 Pythonic 的方法,我的意思是,构建一个构造函数并使用关键字 self 例如变量,如果可行,我可以扩展我的答案来解释为什么会这样。

在类1和类2中创建一个这样的方法:

def __init__(self, object_list=None) : # use corresponding classes attributes.  
if self.name_of_your_variable:
self.name_of_your_variable= [] # or proper value

根据你的类(class)调整它,让我知道,如果可行,我一到家就会扩展它

关于python - 如何创建 "individual"对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40285156/

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