파이썬은 인터프리터 언어로, 코드를 실행하기 전에 해당 모듈을 메모리에 적재합니다.
import 문은 모듈을 현재 실행 중인 스크립트에 적재하도록 지시하는 역할을 합니다.
그러나 import 문 자체가 모듈의 코드를 실행하는 것은 아닙니다.
import sys
def app():
a = input()
app()
위 코드를 예로 들자면,
파이썬 인터프리터는 모듈을 적재할 때 해당 모듈의 코드를 메모리에 로드하고, 필요한 경우 초기화 코드를 실행한다.
모듈의 코드는 import 문이 실행될 때가 아니라, 해당 모듈의 내용이 실제로 사용되는 시점에 실행된다.
import sys
def app():
a = sys.stdin.readline()
위 코드를 예로 들어서 다시 설명해보겠다.
즉, import 문은 모듈을 사용 가능한 상태로 만들어주는 역할만을 하며,
모듈의 코드 실행은 필요할 때 지연되어 발생합니다.
따라서 import sys 문 자체로 sys 모듈의 코드가 실행되는 것이 아니라는 점이다.
sys 모듈을 현재 스크립트에 적재하여 사용 가능하게 만들 뿐이고,
sys 모듈의 실제 코드는 해당 모듈 내부에서 필요한 시점에 실행된다.
###
해당 스크립트 파일이 직접 실행되었을 때,
즉 커맨드 라인에서 파이썬 스크립트를 실행할 때 해당 모듈의 코드가 실행되는 것을 의미한다.
-> command-line arguments(커맨드 라인에서 인수를 받는 것)을 할 때 해당 모듈의 코드가 실행되서 메모리에 적재된다는 것이다.
참고
'Python > python' 카테고리의 다른 글
url에 쿼리스트링으로 데이터 넘길때 예약문자 인코딩문제 (0) | 2023.10.25 |
---|---|
오버로딩 & 오버라이딩(Overloading & Overriding) (0) | 2023.07.14 |
검색하다가 모르던거 정리 (0) | 2023.07.11 |