본문 바로가기
Python

Python - module

by DGK 2021. 10. 18.

 

인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

module

 

  • 기본 개념
모듈은 변수, 함수, 클래스 등의 파이썬 구성요소들을 모아놓은 파일이다.

# 기본 예시


import sys

print(sys.path)
print(type(sys.path))

# print(sys.path)를 통해 파이썬의 모듈과 패키지 경로를 찾아서 사용할 수 있다.
# 즉, 외부 모듈과 패키지를 sys.path에 등록하면,
# 등록된 경로를 통해 외부 모듈과 패키지를 불러와서 사용 가능하다.



sys.path.append('/Users/donggyu/Desktop/math')
print(sys.path)
import test_module   

# append( ) 함수를 통해 sys.path에 모듈 경로를 등록(반영구적 등록)하면,
# print(sys.path) 코드를 통해 모듈 파일의 경로가 새롭게 등록된 것을
# 확인할 수 있다.('/Users/donggyu/Desktop/math')
# 그리고 import를 통해 등록된 모듈 파일을 불러오면, 모듈 파일의 기능을 사용할 수 있다.



print(test_module.power(10, 3))

# 이처럼 외부에서 불러온 모듈 파일의 기능을 사용할 수 있다.
# 여기서 power( ) 함수는 내부에 존재하는 함수가 아니라 외부에서 불러온 모듈의 기능이다. 




# 참고 예시

# 외부 파일에서 모듈을 불러와서 모듈의 기능을 사용할 때,
# import가 되고 실행버튼을 누르면 자동으로 외부파일에서 모듈의 코드가
# 실행되는 특징이 있다.

# 하지만 이렇게 실행되는 모듈의 코드 중에는 사용자가 원하지 않는 코드이거나,
# 혹은 함부로 실행되면 안되는 코드가 존재할 수 있기 때문에 주의해야 한다. 

# 따라서, 이러한 문제를 사전에 방지하기 위해서는 모듈의 코드를 아래와 같이 수정해야 한다.


[모듈 파일의 코드]

(수정 전)

print('-' * 15)
print('called inner!')
print(add(5,5))
print(subtract(15,5))
print(multiply(5,5))
print(divide(10,2))
print(power(5, 3))
print('-' * 15)



(수정 후)

if __name__ == '__main__':
    print('-' * 15)
    print('called! __main__')
    print(add(5,5))
    print(subtract(15,5))
    print(multiply(5,5))
    print(divide(10,2))
    print(power(5, 3))
    print('-' * 15)
    
# 여기서 __main__은 코드가 실행되는 대상을 의미하기 때문에, 
# __main__의 코드가 존재하는 파일에서만 실행되고 외부에서는 실행되지 않는다.
    
# 이처럼 모듈 파일의 코드에 if __name__ == '__main__':의 코드를 추가하면,
# 외부 파일에서 해당 모듈 파일을 import할 때 모듈 파일의 코드가 자동으로 실행되는 것을
# 사전에 방지할 수 있다.

'Python' 카테고리의 다른 글

Python - Exception  (0) 2021.10.18
Python - package  (0) 2021.10.18
Python - class  (0) 2021.10.15
Python - input  (0) 2021.10.15
Python - functions  (0) 2021.10.15

댓글