돈이 만드는 세상
#1-4 파이썬 초급 강의 - 모듈(module) 본문
모듈(module)
- 다양한 클래스와 함수들을 모아 놓은 것, 라이브러리라고도 함
간단한 모듈(module) 만들어보기
# my_first_python
def wow_sum(x, y):
return x + y
a = 1
b = 2
print(wow_sum(a, b), "이 출력되었습니다")
# my_second_python
import my_first_python
#2 from my_first_python import wow_sum
#3 import my_first_python as mfp
c = 2
d = 3
result = my_first_python.wow_sum(c, d)
#2 result = wow_sum(c, d)
#3 result = mfp.wow_sum(c, d)
print(result)
파이썬 모듈을 임포트하는 방법은 세 가지로 분류할 수 있습니다. import 이름
, from 이름 import 이름
, import 이름 as 변경할 이름
로 분류할 수 있습니다. as
를 활용하여 from 이름 import 이름 as 변경할 이름
이런식의 활용 또한 가능합니다.
3 이 출력되었습니다
5
위의 코드를 작성할 시 import시 전체가 실행되버리는 불상사가 발생하게 됩니다. 이런 것을 막기 위해 __name__
을 사용합니다. __name__
은 현재 모듈의 이름을 담고있는 내장 변수입니다. 이 변수는 직접 실행된 모듈의 경우__main__
이라는 값을 가지게 되며, 직접 실행되지 않은 import된 모듈은 모듈의 이름(파일명)을 가지게 된다.
위의 상황 정리
#module.py
def hello():
print("Hello!")
print(__name__)
#first_program.py
import module
print(__name__)
module.hello()
module
__main__
Hello!
module_이 먼저 출력되는 이유는 import한 모듈 내의 함수를 사용하기 전에 `print(_name)을 사용했기 때문에 _module_이 먼저 출력된 것입니다. 그 다음 코드인
module.hello()를 실행함으로써 모듈 내에 있는 함수와
print(name)코드를 통해
main과
Hello!` 이 출력됩니다.
위 상황을 해결하기 위해 if __name__ == "__main__":
조건문을 사용하는 것입니다. 이 조건문을 사용하게 되면 import해서 사용하는 경우 __name__
이 달라지기 때문에 해당 조건문 안에 있는 코드가 실행되지 않습니다. 결과적으로 모듈로써 import되어 사용되는 경우가 아닌, 그 자체 main 파일로써 사용되는 경우에만 코드가 실행되는 것입니다.