int型でない呼び出し可能なエラーを思い付く:はpythonで値を追加しようとしているが、しかし、それはエラーを思い付く私はPythonでクラスから複数の整数を追加しようとしています
は、クラスのコードがあるTraceback (most recent call last): File "G:/documents/Computing/Python/Fighter Game.py", line 53, in if player.health() + player.strength() + player.defence() + player.speed() == 350: TypeError: 'int' object is not callable
:
class Fighter:
name = "Not Set"
alignment = "Not Set" #good/bad
health = 0
strength = 0
defence = 0
speed = 0
def name(self):
return self.name
def alignment(self):
return self.alignment
def health(self):
return self.health
def strength(self):
return self.strength
def defence(self):
return self.defence
def speed(self):
return self.speed
def set_name(self, new_name):
self.name = new_name
def set_alignment(self, new_alignment):
self.alignment = new_alignment
def set_health(self, new_health):
self.health = new_health
def set_strength(self, new_strength):
self.strength = new_strength
def set_defence(self, new_defence):
self.defence = new_defence
def set_speed(self, new_speed):
self.speed = new_speed
とエラーをスローするコードは次のとおりです。
player = Fighter()
while True:
player.set_name(input("Enter your name: "))
player.set_alignment("good")
player.set_health(int(input("Enter your health: ")))
player.set_strength(int(input("Enter your strength: ")))
player.set_defence(int(input("Enter your defence: ")))
player.set_speed(int(input("Enter your speed: ")))
if player.health() + player.strength() + player.defence() + player.speed() == 350:
print("Player setup complete.")
break
else:
print("Numerical player values must all add up to 350.")
ギブかもしれないすべてのヘルプnをいただければ幸いです! :-)
'.health'はプロパティとメソッドの両方になることはできません。 'set_health'のときにメソッドを上書きします。 – deceze
あなたは属性と関数の両方として防御を使用しています(def defense(self))。関数または属性の名前を変更すれば正常に機能します –