来自对象的新对象

时间:2017-12-19 15:20:40

标签: python oop genetic-algorithm

我正在尝试实现遗传算法,我是python的新手,我正在尝试使用以下属性构建Python类Gene

Gene has Portid,trt,days

第二类染色体,含有20个Gene对象作为其属性

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'

1 个答案:

答案 0 :(得分:0)

尝试以下代码。 Python 3对于类不需要(object)层次结构。你也使用它作为你没有使用的参数,所以我也从那里删除它。方块bracke3ts []内的部分已经创建了列表,因此您不需要将其分配给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)]