name
実行しているコードでは、__ name __ =' __ main __ 'が入る
import されたファイルの内部では、__ name __ ='ファイル名'が入ってる
これを区別する事で、どのファイルを実行しているかが分かる
従って、mainファイルを他のファイルで呼び出した時に、main()は実行されない仕組みが作れる
具体例
bファイルにif name == 'main':がない場合
b.py
def import_print_name():
return __name__
print(import_print_name())
main.py
import b
def main():
print("importしたファイル名になる。今回の場合",b.import_print_name())
print(__name__)
if __name__ == '__main__':
main()
実行結果(mainを実行).
b
importしたファイル名になる。今回の場合 b
__main__
上記bは、import bの時点で呼び出される
bファイルにif name == 'main':がある場合
b.py
def import_print_name():
return __name__
if __name__=='__main__':
print(import_print_name())
main.py
import b
def main():
print("importしたファイル名になる。今回の場合",b.import_print_name())
print(__name__)
if __name__ == '__main__':
main()
実行結果(mainを実行).
importしたファイル名になる。今回の場合 b
__main__