来自同一类的 Python 实例,具有自己的随机数列表



所以我从同一个类创建了一个x个实例,每个实例我都希望有一个包含10个随机数的列表。问题是当我实例化它们时,它会为所有实例提供相同的列表。我做了一些研究,我知道我做错了什么。基本上我认为我不应该使用 .append() 方法,因为它从原始类扩展了 List 属性。来了

from random import randint
class Vehicle():
    List = []
    def __init__(self):
        for i in range(10):
            Vehicle.List.append(randint(0,10))

from Vehicle import Vehicle
class Instances():
    vehicles = []
    def __init__(self):
        for i in range(10):
            new_vehicle = Vehicle():
            Instances.vehicles.append(new_vehicle)

当我实例化 Instances 类时,一切正常,但每个 Vehicle 实例的 List 属性都相等,并且它们的长度 = 100。现在我得到长度 = 100,因为每个实例附加 10 个实例 x 10。最大的问题是,我怎么能有 10 个来自 Vehicle 类的实例,并且它们都有一个包含所需长度(即 10)的 10 个随机数的唯一列表?

您混淆了类和实例级别的属性。 当你编写代码时List它是Vehicle的一个属性,即有一个对象是List的,它Vehicle的所有实例共享

试试这个:

class Vehicle():
    def __init__(self):
        self.List = []
        for i in range(10):
            self.List.append(randint(0,10))

List作为实例变量而不是类变量:

def __init__(self):
    self.List = []
    for i in range(10):
        self.List.append(randint(0,10))

相关内容

最新更新