我正在尝试实现遗传算法,我是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'
答案 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)]