Language/Python

Python 강의 정리 8. if __name__ == "__main__":

Jen'_' 2021. 5. 3. 11:14
반응형

 

if __name__ == "__main__": 의 의미

- 해당 모듈이 임포트된 경우가 아니라 인터프리터에서 직접 실행된 경우에만, if문 이하의 코드를 돌리라는 명령이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# test_module.py
PI = 3.141592
def number_input():
    output = int(input("숫자입력> "))   
    return float(output)
    
def get_circumference(radius):
    return 2 * PI * radius   
 
def get_circle_area(radius):
    return PI * radius * radius
    
if __name__=="__main__":
    print(get_circumference(10)   
    print(get_circle_area(10))  
    print("직접 실행"
    print(__name__) 
   
else:
    print("임포트되어 사용됨")    
    print(__name__)   
    
------------
(result)
PS C:\Users\Kim> & python c:/Users/Kim/Desktop/Python/test_module.py
62.83184
314.1592
직접 실행
__main__
cs

 

test_module.py 은 반지름 값을 입력받아 원의 둘레와 넓이를 구하는 모듈이다

결과를 보면 if __name__=="__main__": 이 실행되어서 반지름에 10이 들어갔다

인터프리터에서 직접 실행하면 __name__ 변수에 "__main__" 이 담기기 때문이다!

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# main.py
import test_module as test
 
radius = test.number_input()
print(test.get_circumference(radius))
print(test.get_circle_area(radius))
 
-----
(result)
PS C:\Users\Kim> & python c:/Users/Kim/Desktop/Python/main.py
임포트되어 사용됨
test_module
숫자입력> 3
18.849552000000003
28.274328000000004
cs

 

main.py 에 test_module 을 임포트 하였다

외부 모듈을 임포트 하면 해당 모듈의 기능을 사용할 수 있다!

__name__에는 "__test_module(외부모듈)__" 이 담겨서 else 부분이 실행되었다(임포트 하자마자 모듈이 실행됨)

그 후 모듈의 기능을 사용한 main.py 의 코딩이 실행된다

 

 

※ import

import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다(즉, main.py 와 test_module.py 는 같은 디렉터리에 있어야 한다)

파이썬 라이브러리는 파이썬을 설치할 때 자동으로 설치되는 파이썬 모듈을 말한다

 

반응형