pyhton 중pycache__폴 더 의 생 성과 역할 에 대한 상세 한 설명
모듈 호출
Python 이 모듈 을 가 져 올 때 실제로 가 져 온 모듈 을 한 번 실행 합 니 다.예 를 들 어 test.py 모듈 호출:
def haha():
print("haha")
haha()
주 프로그램 main.py:
import test
print("good")
실행 결과:haha
good
어떻게 해야만 호출 된 모듈 의 코드 를 실행 하지 않 고 단순히 호출 할 수 있 습 니까?모듈 코드 가 실행 되 지 않 으 려 면 를 사용 하 십시오.name__。모듈 가 져 오기 와 관련 이 없다 면,name__의 값 은main__,모듈 이 인용 되 어 가 져 오 면 이 모듈 안의name__값 은 파일 의 이름(.py 가 없 음)입 니 다.예 를 들 어 test.py:
def haha():
print("haha")
haha()
print(__name__)
실행 결 과 는:haha
__main__
test 가 인용 되 었 다 면,예 를 들 어 test 2:
import test
print("good")
실행 결 과 는:haha
test
good
호출 된 모듈 에 코드 를 실행 하기 전에 if 를 추가 합 니 다.name__ == '__main__':이렇게 판단 하면 호출 된 모듈 의 코드 는 실행 되 지 않 을 것 이다.
유래
Python 프로그램 이 실 행 될 때 바 이 너 리 코드 로 컴 파일 하지 않 고 원본 코드 에서 프로그램 을 실행 합 니 다.쉽게 말 하면 Python 해석 기 는 원본 코드 를 바이트 코드 로 바 꾼 다음 해석 기 에서 이 바이트 코드 를 실행 합 니 다.
해석 기의 구체 적 인 작업:
1.모듈 의 로드 와 링크 완료;
2.소스 코드 를 PyCodeObject 대상(즉 바이트 코드)으로 컴 파일 하여 메모리 에 기록 하여 CPU 가 읽 을 수 있 도록 합 니 다.
3.메모리 에서 읽 고 실행 한 후 PyCodeObject 를 하 드 디스크 에 기록 합 니 다.즉,.pyc 또는.pyo 파일 에 복사 하여 현재 디 렉 터 리 에 있 는 모든 스 크 립 트 의 바이트 파일 을 저장 합 니 다.
그 다음 에 이 스 크 립 트 를 다시 실행 하면[로 컬 에 상기 바이트 파일 이 있 는 지]와[이 바이트 파일 의 수정 시간 이 원본 파일 뒤에 있 는 지]를 확인 하고 직접 실행 합 니 다.그렇지 않 으 면 상기 절 차 를 반복 합 니 다.
처음 코드 를 실 행 했 을 때 Python 해석 기 는 컴 파일 된 바이트 코드 를 에 두 었 습 니 다.pycache__폴 더 에서 이렇게 다시 실행 하면 호출 된 모듈 이 바 뀌 지 않 으 면 컴 파일 단 계 를 건 너 뛰 고 바로pycache__폴 더 에서 관련 된*.pyc 파일 을 실행 하여 프로젝트 실행 전의 준비 시간 을 크게 단축 시 켰 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실험 관리안녕하세요, (현재 Kaggle Expert 20210225).이번엔 트위터에서도 자주 화제가 되는 실험 관리 방법을 쓰려고 한다.이전에 쓴 적이 있다 이 문장은 그래도 약간 관련이 있으니 필요하면 한번 보세요. e...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.