gpt4 book ai didi

python - 为什么项目等级定义会有所不同

转载 作者:行者123 更新时间:2023-11-28 21:50:13 24 4
gpt4 key购买 nike

如何确保三个 Item 的实例都是唯一的“自包含”变量,而不仅仅是具有三个不同名称的相同数据?

class Item(object):
def __init__(self):
self.ID=None
self.name=None

items=[]
for row in range(3):
item=Item
item.ID=row
item.name='Item %s'%row
items.append(item)

for item in items:
print item.name

print 'True?:', items[0]==items[1]==items[2]

最佳答案

问题在行中-

item=Item

这会将类设置为 item ,它不会创建该类的新实例。您需要将 Item 调用为 Item() ,以创建该类的新实例 -

item=Item()

在您原来的情况下,因为您将同一个类放入 item 变量,并创建/更改其类变量 - IDname ,然后将该特定类插入到 items 列表中。

在循环的每次迭代中,item 都指向同一个类(不是实例,而是类),因为您没有创建类的实例,而是直接获取类本身.

关于python - 为什么项目等级定义会有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152631/

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