Python

トップ > チップス > Python
2013-10-06, python

リフレクションとかポリモーフィズムとか

頭がC++やJavaモードだと、見出しのようなキーワードがどうしても先に浮かんで来ちゃいます。複数のサブクラスのインスタンスから共通の処理を呼び出すにはどうすればよいのか、と参考書を見渡してみたのですが、全然そんな章が見当たりません。何故かというと、それをするのに(java.lang.reflectパッケージみたいな)大掛かりな仕掛けが必要ないからなんですね。

下記は少々荒っぽい例ですが、同じ名前でパッケージごと処理内容が異なる関数を用意して、それを順番に呼び出すには以下のように書くだけです。

a.py
def foo():
    print "Hello from A."
b.py
def foo():
    print "Hello from B."
import a, b
objs = [a,b]
for o in objs:
    o.foo()
Hello from A.
Hello from B.

参考URL

この記事は役に立ちましたか?