본문 바로가기

프로그래머/Python

[윤성우의 열혈 파이썬 중급편] 34. __name __ & __main __

출처 : 윤성우의 열혈 파이썬 : 중급

34. __name __ & __main __

__name __

# who_are_you.py
def main():
    print('file name: who_are_you.py')
    print('__name__: {0}'.format(__name__))

main()

# importer.py
import who_are_you
print('play importer')
print('__name__: {0}'.format(__name__))

# file name: who_are_you.py
# __name__: who_are_you
# play importer
# __name_: __main__
  • 파이썬은 파일별로 각각 변수 name을 만든다
  • 실행이 시작되는 스크립트 파일의 name에는 문자열 'main'을 채운다
  • import 되는 스크립트 파일의 name에는 파일 이름을 문자열로 채운다

if __name __ == 'main __'

# adder2.py
def add(n1, n2):
    return n1 + n2

if __name__ == '__main__':
    def main():
        print(add(3, 4))
        print(add(5, 9))

main()  # if의 조건이 True인 경우에만 main 함수가 호출된다

# divider.py
import adder2 as ad

def divide(n1, n2):
    return n1 / n2

def main():
    print(divide(4, 2))
    print(divide(9, 3))
    print(divide(2, 3))

main()
  • 필요하다면 다른 파일에서 이 파일을 import 해서 add 함수를 호출할 수 있게 한다
  • 이 파일을 직접 실행해서 main 함수가 호출되도록 한다
  • adder2.py의 main 함수 정의와 호출은 실행되지 않으니 가져다 쓰는데 전혀 문제가 없다