@wb_by
Учусь

Почему появляется ошибка NoneType?

Я только час назад начал изучать питон) Мне не понятно поведение компилятора... Я создал класс:
class Specie:

    def __init__(self, x, y, z, t):
        self.x = x
        self.y = y
        self.z = z
        self.t = t
        self.fitness = None
        self.reproductionProbability = None

    def fitness(self):
        self.fitness = 1 / Genetic.calcF(self) //вызываю статический метод другого моего класса
        return self.fitness

    def reproductionProbability(self):
        self.reproductionProbability = self.fitness/Genetic.totalFitness
        return self.reproductionProbability

После в коде я написал:
specie = Specie(10, 2, 4, 5)

print(specie.fitness())

И получаю ошибку:
Traceback (most recent call last):
  File "/Users/nikita/Desktop/Python/geneticAlg/index.py", line 71, in <module>
    print(specie.fitness())
TypeError: 'NoneType' object is not callable

Наверное я как-то не так инициализирую класс?
  • Вопрос задан
  • 357 просмотров
Решения вопроса 2
Для начала питон не компилируемые язык.
Потом ты сначала создал метод с именем fitness, а затем в __init__ переопределил ее на None
self.fitness = None

все логично что у тебя ошибка.
Не надо так
Ответ написан
@kirillinyakin
Переименуйте метод fitness на другое имя, так как интерпретатор пытается получить аттрибут fitness, который Вы проинициилизировали в __init__, у которого нет как раз таки метода fitness
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы