【发布时间】:2020-09-26 08:30:42
【问题描述】:
我正在 python 中制作这个非常简单的遗传算法。我制作了一个自定义类,它将成为不断发展的“生物”。我创建了该类的实例,当我尝试从其中一个对象调用该类的函数时,它给了我“'int' object is not callable”错误。
这是我所有的代码:
import random as random
class Creature:
def __init__(self, value1, value2, value3, generation, index):
self.value1 = value1
self.value2 = value2
self.value3 = value3
self.generation = generation
self.index = index
def generation(self):
test = self.value1 * self.value2 - self.value3
if test >= 50:
newGeneration.append(self)
self.index = len(newGeneration)
creatures = []
newGeneration = []
for i in range(100):
value1 = random.randint(5,10)
value2 = random.randint(5,30)
value3 = random.randint(30,50)
creatures.append(Creature(value1, value2, value3, 1, i))
for i in range(len(creatures) - 1):
creatures[i].generation()
for i in newGeneration:
print(i.value1 * i.value2 - i.value3)
运行时,它给了我这个:
line 29, in <module>
creatures[i].generation()
TypeError: 'int' object is not callable
提前谢谢你
【问题讨论】:
-
generation属性是一个int你不能调用它 -
你有
self.generation作为属性和方法。更改其中之一。
标签: python function class error-handling compiler-errors