Python 为什么随机生成的数字序列对于不同的类实例是相同的?

Python 为什么随机生成的数字序列对于不同的类实例是相同的?,python,random,numbers,sequence,seed,Python,Random,Numbers,Sequence,Seed,我一直在尝试生成不同的字典结构(与Python中的不同类实例相关),其中填充了不同类之间的随机数值[0,1)。字典的键并不重要。但是,主要问题是,当我尝试生成带有随机值的字典时,它们都以相同的顺序出现: {'p0': 0.8834439890229875, 'p1': 0.4542011548977558, 'd0': 0.041855079212439805, 'c0': 0.30179244567633823, 'c1': 0.026356543619428408, 'c2': 0.2460

我一直在尝试生成不同的字典结构(与Python中的不同类实例相关),其中填充了不同类之间的随机数值[0,1)。字典的键并不重要。但是,主要问题是,当我尝试生成带有随机值的字典时,它们都以相同的顺序出现:

{'p0': 0.8834439890229875, 'p1': 0.4542011548977558, 'd0': 0.041855079212439805, 'c0': 0.30179244567633823, 'c1': 0.026356543619428408, 'c2': 0.24603169392476631}
{'p0': 0.8834439890229875, 'p1': 0.4542011548977558, 'd0': 0.041855079212439805, 'c0': 0.30179244567633823, 'c1': 0.026356543619428408, 'c2': 0.24603169392476631}
{'p0': 0.8834439890229875, 'p1': 0.4542011548977558, 'd0': 0.041855079212439805, 'c0': 0.30179244567633823, 'c1': 0.026356543619428408, 'c2': 0.24603169392476631}
代码:

''' Individual Class '''

from random import Random

class Individual:

        chromosome = {} #The chromosome of an individual is a random generated dictionary.
        randomInstance = Random(datetime.now())

        def __init__(self, numP, numD, numC):
                self.randomInstance.seed()
                for i in range(numP):
                        plant = "p"
                        plant += str(i)
                        self.chromosome[plant] = self.randomInstance.random()

                for j in range(numD):
                        plant = "d"
                        plant += str(j)
                        self.chromosome[plant] = self.randomInstance.random()

                for k in range(numC):
                        plant = "c"
                        plant += str(k)
                        self.chromosome[plant] = self.randomInstance.random()

def main():

        list = []
        for i in range(4):
                inst = Individual(2, 1 ,3)
                list.append(inst.chromosome)

        print(list)
我试图为每个类实例获取不同的序列


希望有人能提供帮助。谢谢大家。

您将
染色体
随机实例
声明为类属性,以便它们在类的所有实例中共享。如果您希望每个实例共享它们,则将它们初始化为init中的类属性。

不要命名变量
列表
所以我很确定他们都共享同一个种子,这就是为什么你会得到相同的确切数字。@snakecharmerb这个问题也有完全相同的命名错误,lolIs是因为list()方法吗?它确实回答了我的问题。非常感谢。干杯。谢谢,这就是问题所在。干杯。