来年(2012年)になったら福岡のPythonの勉強会/コミュニティーを作ろう!
と思っていたら、第一回勉強会が開かれるようです。
福岡でもPythonistaの活動が活発化するといいですね!
エキスパートPythonの中でsuper()メソッドのことが書かれていたんですが、super()メソッドを使ったことがなかったので少し調べました。
super()メソッドは第一引数に指定されたクラスの親クラスを返すメソッドで、以下のようなクラスの継承で使うことができます。
OyaクラスをKodomoクラスで継承し、Oyaクラスのspamメソッドを実行するKodomoクラスのeggsメソッドを実装した例です。
class Oya(object): def spam(self): print "I am a father" class Kodomo(Oya): def eggs(self): super(Kodomo, self).spam() c = Kodomo() c.eggs() c.spam() // 直接親クラスのメソッドを呼び出している例です。
これを実行すると、当然、こう表示されます。
I am a father
I am a father
これをsuper()メソッドを使わずに書くとこうなります。
class Oya(): def __init__(self): pass def spam(self): print "I am a father" class Kodomo(Oya): def __init__(self): Oya.__init__(self) def eggs(self): self.spam() c = Kodomo() c.eggs()
wats
2011/10/30 23:08
最近 m-hashimoto さんにfukuoka.pyに入れて頂きました。読書会毎週やる予定ですので、よろしくお願いします!
Bella
2012/02/21 07:38
That insihgt's just what I've been looking for. Thanks!
nscpytj
2012/02/21 20:04
klqdDY <a href="http://iytrtayqfbas.com/">iytrtayqfbas</a>
yfbhlzjq
2012/02/29 01:55
iiT77w <a href="http://xtgusbqbatkt.com/">xtgusbqbatkt</a>