あなたにはかなりのものがありませんが、お手伝いします!
__init__
機能は何もしません。基礎統計をいくつかあげましょう。私はPlayer
のデフォルト速度と健康状態がそれぞれ10と100になると言います。次にBerserker
をサブクラスのPlayer
にします(これはあなたが行ったことだと思います)。最後に、私はPlayer
にその値の文字列形式の出力を得る方法を与えるでしょう。
まず、新しいPlayer
:Berserker
ため
class Player:
def __init__(self, speed=10, health=100):
self.speed = speed
self.health = health
def __str__(self):
return "A player with speed {} and health {}.".format(self.speed, self.health)
そして今。私はそれを85のベース15の速さと健康を与えるでしょう(もちろん、具体的には、あなた次第です!)
class Berserker(Player):
def __init__(self):
super().__init__(speed=15, health=85)
最後に、我々はこれらを作成し、値を印刷することができます。私はいくつかの異なるバージョンを作って、どのように動作するかを見ることができます。 (そして、これには通常のPythonインタプリタを使用します)。
>>> p1 = Player()
>>> p2 = Player(7, 120)
>>> b = Berserker()
>>> print(p1)
A player with speed 10 and health 100.
>>> print(p2)
A player with speed 7 and health 120.
>>> print(b)
A player with speed 15 and health 85.
これは、開始するのに適していることを願っています。
あなたの '__init__'はd o何か。あなたのクラスをインスタンス化しようとすると、 'AttributeError'もスローされます。基本的なPythonチュートリアルから始めて、次にOOPに進む必要があります。 –
そして、あなたの 'Berserker'メソッドはあなたのクラスに正しく字下げされていないので、インスタンスメソッドのように扱われるのではなく、関数として扱われます。 – idjaw
berserkerがサブクラスまたは人のインスタンスになることを意味しましたか?それはあなたが書いたものではないからです。 – jonrsharpe