출처 : 윤성우의 열혈 파이썬 : 중급
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 함수 정의와 호출은 실행되지 않으니 가져다 쓰는데 전혀 문제가 없다
'프로그래머 > Python' 카테고리의 다른 글
[파이썬] 타입 힌트 | Type Hint | PEP 484 (0) | 2021.01.31 |
---|---|
[selenium] “Element Is Not Clickable at Point” 해결법 | 팝업창 전환 (0) | 2021.01.15 |
[윤성우의 열혈 파이썬 중급편] 33. 클래스 메소드와 static 메소드 (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 32. 데코레이터 (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 31. nested 함수와 closure (0) | 2020.12.24 |