여러 변수와 함수를 가지고 있는 집합체.
import 모듈 이름
스크립트(*py 파일) 상단에 위와 같은 형식으로 Python 파일을 불러오는 개념
import
로 가져온 코드 내의 변수 함수 등을 사용할 수 있게 된다
따라서 어떠한 Python 파일이든 모듈이 될 수 있다
Python Install Package: pip
를 사용한다
pip install 패키지 이름
프로그램의 진입점을 의미한다.
Python 코드 내부에서 __name__
이라는 변수를 사용할 수 있다.
앞서 언급된 것처럼 -거의- 모든 Python 파일들은 다른 파일에서 import
함으로써 모듈이 될 수 있다.
__name__
이게 뭔지는 직접 코드를 짜보면 알 수 있다.
*hello.py*
print('hello 모듈 시작')
print('hello.py의 __name__:', __name__) # __name__ 변수 출력
print('hello 모듈 종료')
>> 실행 결과:
hello 모듈 시작
hello.py __name__: __main__
hello 모듈 끝
이 파일을 다른 파일에 import
시키는 게 아닌, 단독으로 실행했을 때는 이 파일 자체가 프로그램의 시작점이다. 최초로 실행했기 때문이다.
따라서 __name__
은 '__main__'을 뱉어내게 된다.
hello.py 파일을 다른 Python 파일(main.py)에서 import
해보겠다.
*main.py*
# import 시에 .py는 생략한다
import hello
print('main.py의 __name:', __name__) #__name__ 변수 출력
>> 실행 결과:
hello 모듈 시작
hello.py __name__: hello
hello 모듈 끝
main.py __name__: __main__
hello.py의 함수들이 먼저 실행되는 것을 볼 수 있다.
Python에서 import
를 통해 모듈을 가져올 때, 가져온 스크립트 파일이 한 번 실행된다.
따라서 import
를 선언한 후 최초로 실행할 때 hello.py가 한 번 실행된 것이다.
hello.py는 main.py에 import
된 것일 뿐이고, 실행은(프로그램의 시작은) hello.py에서 일어났기 때문에 __name__
변수에는 'hello'가 들어가 있다.
이를 응용하는 하나의 코드를 더 볼 수 있다.
*hello.py* 수정
if __name__ == '__main__':
print("hello 모듈 시작")
print("hello.py __name__:",__name__) # __name__ 에는 'hello'가 들어가있다
print("hello 모듈 끝")
>> 실행 결과:
hello 모듈 시작
hello.py __name__: __main__
hello 모듈 끝
hello.py에서 실행했으며 여기서 최초로 프로그램이 시작되었기에 __name__
은 '__main__'이 된다.
이에 따라 if문이 실행되었다.
하지만 만약 main.py에서 이 파일을 import
하여 실행한다면?
*main.py*
# import 시에 .py는 생략한다
import hello
print('main.py의 __name:', __name__) #__name__ 변수 출력
>> 실행 결과:
main.py __name__: __main__
hello.py의 함수가 실행되지 않는다. hello.py의 __name__
은 'hello'가 되고 If문의 조건을 만족하지 않기 때문이다.
__name__
은 위와 같이 활용할 수 있다.