スーパークラスのPython
で、そのサブクラスでオーバーライドされている関数をどのように呼び出すことができますか?Pythonでのインターフェイスベースのプログラミング?
class A:
@staticmethod
def interfaceBasedMethod():
print "Want to delegate to overriding method in subclass"
@staticmethod
def a():
interfaceBasedMethod() # <-- I know this causes error. But here
# I want to call the overridden method in subclass.
class B(A):
@staticmethod
def interfaceBasedMethod():
print "Class B processes."
if __name__ == "__main__":
b=B
b.a()
理想的な出力:それはJava等に共通する必要がありますが、
Class B processes.
Google検索は、本当に感謝、Pythonでインターフェイスベースのプログラミングについてのページを返しません!
これは**多型**、ではないのインタフェースです。 –
多態性を行おうとしているのなら、なぜあなたは '@ staticmethod'を使用していますか? –
@ブレンダン長い感謝。私はコードを更新し、それがより良く見えるように願っています。私はJavaプログラマーであり、まだPythonには初めてです。 – IsaacS