Python 为什么随机生成的数字序列对于不同的类实例是相同的?
我一直在尝试生成不同的字典结构(与Python中的不同类实例相关),其中填充了不同类之间的随机数值[0,1)。字典的键并不重要。但是,主要问题是,当我尝试生成带有随机值的字典时,它们都以相同的顺序出现: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
{'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()方法吗?它确实回答了我的问题。非常感谢。干杯。谢谢,这就是问题所在。干杯。