Python 获取遗传算法中使用的对象的值 @staticmethod def_选择_锦标赛_人口(pop): 锦标赛流行=人口(0) i=0 当我选择>大小: 锦标赛\u pop.get\u染色体().append(pop.get\u染色体()[random.randrange(0,总体大小)]) i+=1 锦标赛\u pop.get\u染色体().sort(key=lambda x:x.get\u fitness(),reverse=True) 回程锦标赛 def_打印人口(自身、pop、gen_编号): 打印(“\n---------------------------------------------------”) 打印(“世代号”,“世代号”,“最适合的染色体适合度:”,pop.get_染色体()[0]。get_适合度()) 打印(“目标染色体:”,目标染色体) 打印(------------------------------------------------------------) i=0 对于pop中的x。获取染色体() 打印(“染色体”,i,“:”,x,“;适合度:”,x.get_Fitness()) i+=1

Python 获取遗传算法中使用的对象的值 @staticmethod def_选择_锦标赛_人口(pop): 锦标赛流行=人口(0) i=0 当我选择>大小: 锦标赛\u pop.get\u染色体().append(pop.get\u染色体()[random.randrange(0,总体大小)]) i+=1 锦标赛\u pop.get\u染色体().sort(key=lambda x:x.get\u fitness(),reverse=True) 回程锦标赛 def_打印人口(自身、pop、gen_编号): 打印(“\n---------------------------------------------------”) 打印(“世代号”,“世代号”,“最适合的染色体适合度:”,pop.get_染色体()[0]。get_适合度()) 打印(“目标染色体:”,目标染色体) 打印(------------------------------------------------------------) i=0 对于pop中的x。获取染色体() 打印(“染色体”,i,“:”,x,“;适合度:”,x.get_Fitness()) i+=1,python,python-3.x,bioinformatics,genetic-algorithm,objectinstantiation,Python,Python 3.x,Bioinformatics,Genetic Algorithm,Objectinstantiation,我试图获取对象的值,但我收到了对象在内存中的位置: ('Chromosome#',0',:','Fitness:',10)该是类x的实例。我假设你想要这个类的变量。通过将print(vars(x))放入for循环中查看可用变量,获取类x变量的字典,然后访问所需的变量。在pop..Get_染色体()[0]。Get_fitness()获取索引零处的元素并调用Get_fitness()。当你稍后调用相同的方法来获取“对象的值”时,为什么不在列表中建立索引呢?它给了我以下的字典:[1,1,0,1,0,0

我试图获取对象的值,但我收到了对象在内存中的位置:


('Chromosome#',0',:','Fitness:',10)

是类x的实例。我假设你想要这个类的变量。通过将
print(vars(x))
放入for循环中查看可用变量,获取类x变量的字典,然后访问所需的变量。

pop..Get_染色体()[0]。Get_fitness()
获取索引零处的元素并调用
Get_fitness()
。当你稍后调用相同的方法来获取“对象的值”时,为什么不在列表中建立索引呢?它给了我以下的字典:[1,1,0,1,0,0,1,1,0],“\u fitness”:10},列表
\u genes
就是我想要的。非常感谢。
 @staticmethod
def _select_tournament_population(pop):
    tournament_pop = Population(0)
    i = 0
    while i < TOURNAMENT_SELECTION_SIZE:
        tournament_pop.get_chromosomes().append(pop.get_chromosomes()[random.randrange(0, POPULATION_SIZE)])
        i += 1
    tournament_pop.get_chromosomes().sort(key=lambda x: x.get_fitness(), reverse=True)
    return tournament_pop

def _print_population(self, pop, gen_number):
    print("\n------------------------------------------------")
    print("Generation #", gen_number, "| Fittest chromosome fitness:", pop.get_chromosomes()[0].get_fitness())
    print("Target Chromosome:", TARGET_CHROMOSOME)
    print("------------------------------------------------")
    i = 0
    for x in pop.get_chromosomes():
        print("Chromosome #", i, " :", x, "| Fitness: ", x.get_fitness())
        i += 1