>백엔드 개발 >파이썬 튜토리얼 >Python 모듈과 패키지의 주요 차이점은 무엇입니까?

Python 모듈과 패키지의 주요 차이점은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-08 07:53:10577검색

What's the Key Difference Between Python Modules and Packages?

Python의 모듈과 패키지의 차이점 이해

다른 많은 프로그래밍 언어와 달리 Python은 모듈과 패키지를 구별합니다. 효과적인 Python 코딩을 위해서는 이들의 차이점을 명확하게 이해하는 것이 중요합니다.

모듈 정의

Python의 모듈은 단일 Python 파일에 지나지 않습니다. 이는 본질적으로 해당 특정 파일에 정의된 코드 모음입니다. 예를 들어, "my_module.py"라는 파일은 "my_module"이라는 모듈을 정의합니다. 모듈은 코드를 논리 단위로 구성하고 다른 Python 스크립트에서 가져와서 재사용할 수 있도록 도와줍니다.

패키지 정의

반면에 패키지는 모듈과 하위 패키지의 모음입니다. 이는 여러 Python 모듈을 포함하는 디렉터리로 표시됩니다. 또한 Python 스크립트가 들어 있는 일반 디렉터리와 구별하기 위해 패키지 디렉터리 내에 "__init__.py"라는 파일이 필요합니다. 각 디렉토리에 고유한 "__init__.py" 파일이 포함되어 있는 한 패키지는 다양한 수준에 중첩될 수 있습니다.

모듈과 패키지의 차이점

모듈이 존재하는 동안 단일 Python 파일인 패키지는 Python 모듈의 디렉터리를 구성합니다. 그러나 이러한 구별은 파일 시스템 수준에서만 적용됩니다. 모듈이나 패키지를 가져올 때 생성된 Python 객체는 항상 "모듈" 유형입니다.

한 가지 주목할만한 차이점은 패키지를 가져오면 "__init__.dll"에 정의된 변수, 함수 및 클래스만 생성된다는 점입니다. py" 파일을 직접 사용할 수 있습니다. 직접 가져오기를 통해 하위 패키지와 패키지 내의 모듈에 액세스할 수 없습니다.

Python 표준 라이브러리의 xml 패키지를 그림으로 생각해 보세요. xml 디렉토리에는 "__init__.py" 파일과 4개의 하위 디렉토리가 있습니다. 이러한 하위 디렉터리 중 하나인 etree에는 "__init__.py" 파일과 ElementTree.py라는 파일이 추가로 포함되어 있습니다.

다양한 구성 요소를 가져오면 다음과 같은 결과가 발생합니다.

import xml
type(xml)  # <type 'module'>
xml.etree.ElementTree  # AttributeError: 'module' object has no attribute 'etree'

import xml.etree
type(xml.etree)  # <type 'module'>
xml.etree.ElementTree  # AttributeError: 'module' object has no attribute 'ElementTree'

import xml.etree.ElementTree
type(xml.etree.ElementTree)  # <type 'module'>
xml.etree.ElementTree.parse  # <function parse at 0x00B135B0>

이러한 예에서 하위 패키지 또는 모듈(xml.etree.ElementTree)을 명시적으로 가져온 후에만 해당 패키지에 액세스할 수 있음을 알 수 있습니다. 내용.

참고: Python은 C(예: sys)로 구현되는 내장 모듈도 제공합니다. 그러나 이는 귀하의 문의 범위를 벗어납니다.

위 내용은 Python 모듈과 패키지의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.