我正在为我的公司将程序从C翻译成python。我是Python的新手,我不知道如何定义一个带有对象列表的类,因为没有声明。
这里我希望类Population1有一个对象染色体列表。但是翻译不明白。我在互联网上搜索,但我还没有找到解决方案。
我遇到的错误是AttributeError: 'list' object has no attribute 'fitness'
感谢您的帮助。
class Problem1:
def __init__(self,N_variables,minVal,maxVal):
self.N_variables =N_variables
self.minVal=minVal
self.maxVal=maxVal
def objFunct(self):
return 0
class Population1:
def __init__(self):
ch=Chromosomes()
self.Chromo=[]
self.Chromo.append(ch)
class Chromosomes:
def __init__(self):
self.Gene=[]
self.fitness=0
result = normalized_fitness.append((population.Chromo[i].fitness) / sum(population.Chromo.fitness))
答案 0 :(得分:0)
您正在尝试此操作normalized_fitness.append((population.Chromo[i].fitness) / sum(population.Chromo.fitness))
在分子中,您要求列表中的对象上的适合度字段。在分母中,您要求列表中的健身字段 。
如果你想总结一下,你需要一份适合度列表。
all_fitness = [chromo.fitness for chromo in population.Chromo]
this_fitness = population.Chromo[i].fitness
normalized_fitness.append(this_fitness / sum(all_fitness))
这对你有用。每次不计算总和作为练习。