LoginSignup
0
0

More than 3 years have passed since last update.

__name__について簡単に

Posted at

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__
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0