Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
def a(): print __name__
そのような関数を使用できる可能性はありますが、別のモジュールによってインポートされ、そこから呼び出された場合、「正しい」モジュール名を出力しますか?
「正しい」モジュール名は、常にそれが呼び出されたものでなければなりません。
sysモジュールは、呼び出し元を検索するための CPython 固有の方法を提供します。
sys._getframe(1).f_globals.get('__name__', '__main__')
_getframe() 関数はここに文書化されており、フレーム オブジェクトはここに文書化されています。