Python 모듈 의 로드 설명

4009 단어 python모듈
import 이 든 from mmmm import*방식 으로 모듈 을 가 져 오 든 프로그램 이 실 행 된 후에 mmmm.py 파일 이 저 장 된 디 렉 터 리 를 돌 이 켜 보면 파일 이 하나 더 있 습 니 다.

$ ls mmm*
mmmm.py mmmm.pyc
이 디 렉 터 리 아래 에 원래 의 mmmm.py 를 제외 하고 mmmm.pyc 파일 이 하나 더 생 겼 습 니 다.이 파일 은 제 가 쓴 것 이 아니 라 import 과정 으로 말 해 야 합 니 다.
import 작업 프로 세 스
import mmmm,mmmm.py 파일 만 현재 위치(파일 내)에 불 러 오 는 것 이 아니 라 먼저 연산 을 진행 하 였 습 니 다.mmmm.py 가 처음 가 져 왔 을 때 python 은 먼저 컴 파일 을 하고 확장자 가.pyc 인 동명 파일 을 생 성 한 다음 에 mmmm 모듈 의 코드 를 실행 하여 해당 하 는 대상 을 만 듭 니 다.코끼리 를 냉장고 에 넣 는 것 처럼 세 단계 가 있다.
  • 검색.python 에서 import 모듈 을 찾 을 수 있 도록 해 야 합 니 다.어떻게 찾 아?
  • 컴 파일.모듈 파일 을 찾 은 후 바이트 코드 로 컴 파일 합 니 다.바로 그.pyc 파일 에 있 는(바이트 코드 에 대해 서 는 다음 에 소개 하 겠 습 니 다.계속 읽 으 세 요)입 니 다.언제든지 컴 파일 되 는 것 이 아니 라 처음 실 행 될 때 만 컴 파일 됩 니 다.mmmm.py 파일 이 바 뀌 면 또 하나의 새 파일 에 해당 하고 새로 컴 파일 됩 니 다.사실은.pyc 파일 에 시간 스탬프 가 있 습 니 다.python 은 이 시간 스탬프 를 자동 으로 검사 합 니 다.같은 이름 의.py 파일 시간 스탬프 보다 오래 되면 새로 컴 파일 됩 니 다.안 그러면 넘 어가.물론 같은 이름 의.py 소스 파일 을 찾 지 못 하고 바이트 파일.pyc 만 있다 면 이것 만 실행 할 수 있 습 니 다.
  • 운행.실행 은 바로 앞에서 컴 파일 된 모듈 바이트 파일 입 니 다.순리 대로 실행 해 야 합 니 다.
  • 검색 모듈
    일반적으로 python 은 모듈 검색 과정 을 자동 으로 완성 합 니 다.그러나 어떤 경우 에는 검색 경 로 를 설정 하 라 고 프로그래머 에 게 요구 할 수도 있다.import 모듈 이 있 으 면 python 은 가 져 올 모듈 파일 을 아래 순서대로 찾 습 니 다.
  • 프로그램의 홈 디 렉 터 리 입 니 다.앞에서 말 했 듯 이 codes 라 는 디 렉 터 리 에서 상호작용 모드 를 실행 합 니 다.이때 홈 디 렉 터 리 는 codes 입 니 다.그 상호작용 모드 에서 import mmmm 를 실행 할 때 먼저 codes 라 는 디 렉 터 리 에서 해당 하 는 파일 을 검색 합 니 다(.py 를 찾 은 후에.pyc 로 컴 파일 합 니 다).물론 홈 페이지 프로 그래 밍 에서 홈 디 렉 터 리 란 최상 위 파일 을 통 해 설정 할 수 있 는 디 렉 터 리 입 니 다.
  • PYTHONPATH 디 렉 터 리.이것 은 환경 변수 설정 입 니 다.설정 이 없 으 면 거 릅 니 다.환경 변수 설정 을 어떻게 하 는 지 구 글 에 문의 하 세 요.
  • 표준 라 이브 러 리 목록.파 이 썬 이 설치 되면 서 컴퓨터 에 들 어 온 거.
  • .pth 파일 의 내용 입 니 다.만약 이런 종류의 파일 이 있다 면,마지막 으로 이런 종류의 파일 에서 검색 해 야 한다.이것 은.pth 파일 에 유효한 디 렉 터 리 를 추가 하여 검색 경로 로 만 드 는 간단 한 방법 입 니 다.아래 그림 은 제 컴퓨터 에.pth 파일 을 저장 하 는 위치 와 안에 놓 여 있 는.pth 파일
  • 입 니 다.

    .pth 파일 을 직접 작성 할 수도 있 습 니 다.검색 디 렉 터 리 가 들 어 있 습 니 다.여기에 저장 하 십시오.예 를 들 어 디 렉 터 리 에 있 는 easy-install.pth 파일 을 열 면 발 견 된 내용:

    검색 은 이런 과정 이다.굳이 어떤 설정 을 하지 않 아 도 되 는 지 알 아 보 는 것 을 권장 합 니 다.많은 경우 python 은 자동 으로 완 성 됩 니 다.특히 초보 자 는 경거망동 하지 마라.
    과부하 모듈
    mmmm 모듈 을 예 로 들 면.
    셸 에서 python 을 실행 하고 다음 작업 을 했 습 니 다.
    
    >>> import mmmm
    >>> mmmm.web
    'https://hiekay.github.io'
    다음은 셸 을 하나 더 열 고 mmmm.py 파일 을 편집 하여 웹 값 을 적 절 히 수정 하 겠 습 니 다.
    
    #!/usr/bin/env python
    #coding:utf-8
    web = "https://hiekay.github.io, I am writing a python book on line. "
    def my_name(name):
      print name
    class pythoner:
      def __init__(self,lang):
        self.lang = lang
      def programmer(self):
        print "python programmer language is: ",self.lang
    저장 한 후 원래 가 져 온 모듈 의 대화 모드 로 전환 합 니 다.
    
    >>> mmmm.web
    'https://hiekay.github.io'
    출력 은 앞의 것 과 마찬가지 로 아무런 변화 가 없다.왜 일 까?
    원래 모듈 을 가 져 올 때 첫 번 째 가 져 올 때 만 모듈 코드 를 불 러 오고 실행 합 니 다.그 후에 다시 불 러 오 거나 다시 실행 하지 않 습 니 다.모듈 코드 가 수정 되면 여기 서 실 행 된 것 은 수정 전의 것 입 니 다.
    코드 수정 을 어떻게 실현 한 후에 새로운 것 을 실행 합 니까?한 가지 방식 은 원래 의 상호작용 모드 를 종료 하고 다시 들 어가 서 import mmmm 를 사용 하 는 것 이다.이런 방법 은 좀 번거롭다.Python 은 또 다른 함수 인 reload 함 수 를 제공 하여 모듈 의 재 로드(재 로드 라 고 약칭)를 실현 하고 재 로드 후 모듈 코드 를 다시 실행 할 수 있 습 니 다.다음 계속:
    
    >>> reload(mmmm)
    <module 'mmmm' from 'mmmm.py'>
    >>> mmmm.web
    'https://hiekay.github.io, I am writing a python book on line. '
    이제 수 정 된 내용 이 표 시 됩 니 다.
    특별 알림:
  • reload 는 내장 함수
  • 입 니 다.
  • reload(module),module 는 변수 이름 이 아 닌 이미 존재 하 는 모듈 입 니 다.
  • 총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.

    좋은 웹페이지 즐겨찾기