来自对象的新对象

New Object from objects

我正在尝试实施遗传算法,我是 python 的新手,我正在尝试构建具有以下属性的 Python class 基因

Gene has Portid,trt,days

第二个 class 染色体有 20 个基因对象 属性

Chromosome has gene1,gene2,gene3...gene20

如图所示UML Diagram请帮忙

我试过了

import random
class Gene:
    def __init__(self,id):
        self.id=id
        self.nb_trax=random.randint(1,10)
        self.nb_days=random.randint(50,100)

class Chromosome(object):
    def __init__(self,object):
        self.port[i] = [Gene(id) for i in range (20)]
g=Gene('China')
f=Chromosome(g)

我得到一个错误

f=Chromosome(g)
  File "chrom.py", line 11, in __init__
    self.port[i] = [Gene(id) for i in range (20)]
AttributeError: 'Chromosome' object has no attribute 'port'

试试下面的代码。 Python 3 类 不需要 (object) 层次结构。您还使用它作为您没有使用的参数,所以我也从那里删除了它。方括号内的部分 [] 已经创建了列表,因此您无需将其分配给 self.port[i] 而是直接分配给 self.port

import random

class Gene:
    def __init__(self, id):
        self.id = id
        self.nb_trax = random.randint(1, 10)
        self.nb_days = random.randint(50, 100)

class Chromosome:
    def __init__(self):
        self.port = [Gene(id) for id in range(20)]