상세 컨텐츠

본문 제목

[파이썬(Python)] #10 모듈 생성 및 시작

python

by 빨간눈동자 2021. 8. 22. 23:20

본문

반응형

아래와 같이 2개의 python script가 있다. 

main.py는 test.py를 import해서 test.py에 구현되어있는 함수 (add, mul) 함수를 사용한다. 

 

# test.py

def add(a, b):
    return a+b

def mul(a, b):
    return a*b
 
if __name__ == '__main__':
    print("main 호출")
    print(add(10, 20))
    print(mul(10, 20))
else:
    print("else 호출")
# main.py

import test
 
print(test.add(20,30))
print(test.mul(20,30))​

그럼 이제 main.py와 test.py를 각각 실행 시켜 보자. 어떤 결과가 나타날까? 

test.py 실행 결과
main.py 실행결과

main.py에서 사용한 "import test"는 test.py에 존재하는 모든 함수를 사용할 수 있다. 즉, add()와 mul() 함수를 사용할 수 있다. 하지만, 불필요한 symbol이 import되면서 프로그램 size가 증가할 가능성이 존재한다. 

또 눈여겨 볼 부분은 test.py와 main.py의 실행 결과는 동일하지만, test.py에 있는 if/else이 서로 다르게 실행된 것을 알 수 있다. 이 부분은 나중에 다시 알아보도록 하자.. 

 

다시 본론으로 돌아와서..

그렇다면, 원하는 symbol만 import해서 사용할 수는 없을까? 

from "모듈" import "사용하려는 symbol"

 

# main.py
from test import add
  
print(add(20,30))
print(mul(20,30))

이제 위 main.py script를 실행시켜 보자. error가 발생하였다.

즉, "from test import add"를 통해 test 모듈의 add() symbol만을 사용하려고 하였으나, 실제로는 mul() 까지 사용하면서, "NameError : name 'mul' is not defined' 라는 error msg를 출력하였다. 

 

 

참고로 모듈을 import하는 방법에는 아래와 같이 4가지 방식이 존재한다. 

import 모듈명 

import 모듈명 as 모듈별칭 

from 모듈명 import 함수명[, ...] 

from 모듈명 import 함수명 as 함수별칭 
반응형

관련글 더보기