2011-10-18 2 views
0

파이썬에서 하나 이상의 모듈을 포함하는 디렉토리가 때때로 __init__.py을 가지므로 디렉토리가 파이썬 package으로 처리 될 수 있습니다. __init__의 차이점은 무엇입니까? (또 다른 Q는 파이썬 모듈에게 클래스, 함수 및 변수의) 다른 파일 (관련 가능성이 독립적 인 세트로 단지 파이썬 코드 파일 있습니까?)`__init__ '가 디렉토리와 어떤 차이점이 있습니까?

여기
+1

[튜토리얼] (http://docs.python.org/tutorial/modules.html)을 읽어야합니다. –

답변

2

은 또한 __init__.py의 내용은 패키지의 내용을 표시 즉 somepackage/__init__.py의 내용 dir(somepackage)하면 import somepackage에서 발견 될 것이다.

모듈 자체는 파이썬 코드 specially-crafted C code 일 수 있으며 파이썬 VM을로드하는 실행 파일에 의해 an artificial construct이 주입 될 수 있습니다.

4

explanation이다 __init__.py이 필요한 이유에 대해 :

__init__.py 파일은 Python에서 디렉토리가 패키지를 포함하도록 처리해야합니다. 이는 string과 같은 공통 이름의 디렉토리가 모듈 검색 경로에서 나중에 발생하는 유효한 모듈을 의도하지 않게 숨기는 것을 방지하기 위해 수행됩니다. 가장 간단한 경우 __init__.py은 빈 파일 일 수 있지만 패키지의 초기화 코드를 실행하거나 나중에 설명 할 __all__ 변수를 설정할 수도 있습니다.

다른 포스터에 방금 추천 한대로 tutorial on modules은 유익한 정보입니다. , 모듈로서 취급 할 때

관련 문제