来自对象的新对象
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)]
我正在尝试实施遗传算法,我是 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)]