baseその中で呼び出されたクラスで呼び出されたモジュールを想像Baseしてください。と呼ばれる他のモジュール内で、からsubクラスを継承します。SubBase
import base
class Sub(base.Base):
pass
次に、3 番目のクラスを追加するとどうなるでしょうか。このクラスは、サブクラスの型またはそのサブクラスの 1 つでなければならないSubパラメーターを継承して受け取ります。Base
import sub
class Deep(sub.Sub):
def __init__(self, parent):
if isinstance(parent, sub.base.Base):
pass
継承ツリーの奥深くに進むと、 への道は、誰も望まない になりますBase。thedeepest.deeperanddeeper.reallydeep.deep.sub.base.Base
もちろん、単に実行しfrom base import *てfrom sub import *から使用Baseすることもできますが、クラスの元のモジュールのみのプレフィックスを使用できるようにインポートする方法はありますか?
例えば:
import deep
class ReallyDeep(deep.Deep):
def __init__(self, parent):
# I know my polymorphism, this is just an example.
if isinstance(parent, sub.Sub):
pass
elif isinstance(parent, base.Base):
pass