私はC++とC#のプログラマーです。私は学校のためにPythonに移行しています。私はオブジェクト指向の原則で作っているゲームのエラーに直面しています。 HERESにコード:オブジェクトの初期化とPythonでの参照への割り当て
class Entity(object):
def __init__(self, name, hp):
self.name = name
self.hp = hp
def attack(self, attack_name):
pass
def set_name(self, name):
self.name = name
class Enemy(Entity):
def __init__(self, name, hp):
super(Enemy, self).__init__(name, hp)
self.attacks = {} # creates a DICTINARY of attacks
def add_attack(self, attack_name, attack_damage):
self.attacks[attack_name] = attack_damage
def attack(self, attack_name):
if self.attacks[attack_name] == None:
print("Attack not availible.")
print(self.name + " is attacking with attack " + attack_name + " with " + self.attacks[attack_name])
return self.attacks[attack_name]
new_enemy = Enemy("Waddle Doo", 140)
new_enemy.add_attack("Shoot Beam", 55)
new_enemy.attack("Shoot Beam")
は私が敵呼ばエンティティクラスから継承したクラスを作成しました。私は敵のオブジェクトを開始しようとしましたが、それは私にエラーを与えました:NameError:名前 '敵'は定義されていません。なぜこうなった?コンストラクタがPythonでどのように機能するか、何かをしなければなりませんか?あなたがこの一見小さい問題を助けることができるなら、私はあなたに非常に感謝します。
コードのインデントが間違っています。現在の最後の3つのステートメントはクラスの一部です。 –
ここにヒントがあります:* Pythonのすべてがオブジェクト*です。代入は常に*参照の名前をつける*です。 –