0

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

継承ツリーの奥深くに進むと、 への道は、誰も望まない になりますBasethedeepest.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
4

1 に答える 1