読者です 読者をやめる 読者になる 読者になる

Pythonの学習の過程とか

学習の記録をつけておきましょう。すぐ忘れるんだから。

Pythonの基礎 オブジェクト、クラスの継承編

クラスの継承について

もちろんクラスの継承もあります。

ちょっと頑張って見ていきましょうね。

前回のコード

class Person(object):
     def __init__(self, name):
          self.name = name
     def greet(self):
          print "my name is %s " % self.name
tak = Person("Takuya")

print tak.name
tak.greet()

今回はこのPersonを継承したクラスを作っていきます。

Personを継承したコード

class Person(object):
     def __init__(self, name):
          self.name = name
     def greet(self):
          print "my name is %s " % self.name

class SuperPeson(Person):
     def shout(self):
          print "%s is SUPER!" % self.name

yam  = SuperPerson("Yamamoto")

print yam.name
yam.greet()
yam.shout()
#実行結果
Yamamoto
my name is Yamamoto
Yamamoto is SUPER!

直感で分かると思いますが、1行ずつ考えてみましょう。

class SuperPeson(Person):

クラスの宣言です。SuperPersonというクラスを宣言しています。

(Person)は、上記のPersonクラスのことです。

Personを継承したのがSuperPersonということですね。

継承が分からない人は、別のところで少し勉強しましょう!

SuperPersonはPersonの機能を継承して、さらに独自に拡張したものと言えます。

したがって、Personのself.nameはSuperPersonにも存在します。

また、greet()はSuperPersonにも存在します。

shoutは独自に拡張したクラスメソッド

     def shout(self):
          print "%s is SUPER!" % self.name

ここがSuperPersonの独自のメソッドですね。 Personの機能プラス、shout()がSuperPersonということになります。

実行結果もそのまま。

Personと同じくself.nameに引数のnameが代入され

Personのクラスメソッドのgreet()でself.nameを使用して

SuperPersonのクラスメソッドshout()にもself.nameを使用する

クラスの超超超超基本を説明しました。

ドットインストールさんのコードの引用です。すみません。

最初は???なコードも、1行ずつきちんと解釈していけば大丈夫ですね。

初めてのPython 第3版

初めてのPython 第3版