我试图随机生成对象并将其附加到一个集合,但后来的代码以某种奇怪的方式运行,具有重复的对象(即,调用id(x)时返回相同数字的对象)。 所以我的问题是,在下面的代码中,“newanimal”总是一个新实例,或者我在重复对象并改变它们
from random import randint, choice
Animals_to_choose = [Passaro(), Sapo(), Rato(), Coelho(), Cobra(), Tartaruga(), Lobo()]
someset = set()
n_animals_to_create = 10
for number in range(n_animais_to_create):
newanimal = choice(Animals_to_choose)
newanimal.number = number
someset.add(newanimal)
需要指出的是,所有这些类都继承了这些定义:
def __hash__(self):
return self.number
def __eq__(self, other):
return self.number == other.number
您应该这样更改代码:
这里的想法是您希望选择集中的类,但是您希望在每次对集进行采样时实例化一个新的类
相关问题 更多 >
编程相关推荐