モジュールbase.py
にあるBase
という基底クラスがあります。どのモジュールが__main__のクラスオブジェクトのモジュール名を取得する
class Base:
def __init__(self):
print(self.__module__)
また、モジュールchild.py
である子クラスChild
があります。
from test.base import Base
class Child(Base):
pass
if __name__ == '__main__':
c = Child()
私はpython child.py
を実行します。 私は文print(self.__module__)
をchild
またはchild.py
に印刷します.__main__
は現在印刷されていません。
P.S.子クラスのメソッドを再定義しないでください
それは私が意味することではないのですが。私がクラスが多い複雑な 'mro'を持っているなら、私はクラスがあるのと同じように' if isinstance'を書く必要がありますか? – hasam
'self .__ class__'を試してみませんか? – Jing