Python - 类初始化问题

时间:2018-02-14 21:28:05

标签: python-3.x class oop

我是python的新手,我正在尝试编写简单的遗传算法。

我在__init__()

中遇到了一些问题

代码:

import numpy as np
import random

class Genotype:

def __init__(self):
    self.name = ChCreator.names(self)
    self.fitness = ChCreator.fitness(self)

def mutation(self, m_prob):
    fitness = self.fitness
    if np.random.rand() < m_prob:
        _mutation = random.randint(0, 6)
        fitness = list(fitness)
        if fitness[_mutation] == '0':
            fitness[_mutation] = '1'
        else:
            fitness[_mutation] = '0'
    return ''.join(fitness)


class ChCreator:

ids = []
id = 1

def names(self):

    if ChCreator.id not in ChCreator.ids:
        ChCreator.ids.append(ChCreator.id)
        ChCreator.id += 1
        return 'ch' + str(ChCreator.id-1)

def fitness(self):
    return ''.join(random.choice('01') for _ in range(7))

正如您可以看到,在其他类的Genotype im调用方法中初始化self.name和self.fitness。当我想调用Genotype.mutation()时,问题就开始了 - 而不是对声明的适应值进行处理,而是创建一个非常明显但我无法解决的问题。 谁能帮助我?我希望在创建Geontype对象后有一个恒定的适应值。

0 个答案:

没有答案