base
その中で呼び出されたクラスで呼び出されたモジュールを想像Base
してください。と呼ばれる他のモジュール内で、からsub
クラスを継承します。Sub
Base
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