>백엔드 개발 >파이썬 튜토리얼 >PEP 404는 Python의 Import 문을 어떻게 변경했나요?

PEP 404는 Python의 Import 문을 어떻게 변경했나요?

Barbara Streisand
Barbara Streisand원래의
2024-12-06 11:36:18694검색

How Did PEP 404 Change Python's Import Statements?

Python Import 문에 대한 PEP-404의 영향

Python Enhancement Proposal(PEP) 404는 Python 3의 import 문에 중요한 변경 사항을 도입했습니다. , 모듈의 명확성과 구성을 향상시킵니다. imports.

상대 가져오기란 무엇입니까?

상대 가져오기는 현재 모듈이나 패키지와 관련된 위치에서 모듈을 가져오는 것을 의미합니다. Python 2에서는 암시적 상대 가져오기가 허용되었지만 Python 3에서는 이것이 제한되었습니다.

상대 가져오기 변경

PEP-404는 명시적 상대 가져오기를 시행합니다. 이제 모듈은 선행 . (점) 또는 .. (이중 점)을 사용하여 현재 모듈 디렉터리에 대한 상대 경로를 지정합니다. 예:

from .mymodule import MyFunction  # Import from within the current package
from ..otherpackage import OtherClass  # Import from one level up in the directory structure

Star Imports 제한

Star imports(패키지에서 모든 하위 모듈 및 속성 가져오기)는 이제 모듈 수준 코드에서만 허용됩니다. 이전에는 함수 및 클래스 정의에서 스타 가져오기가 허용되었지만 네임스페이스 오염 및 예상치 못한 동작을 방지하기 위해 이는 금지되었습니다.

예:

Python 2 코드:

# Function-level star import
def my_function():
    from mymodule import *
    do_something_with(MyAttribute)

# Class-level star import
class MyClass:
    def __init__(self):
        from otherpackage import *
        self.other_variable = OtherVariable

파이썬 3 code:

# Module-level star import
import mymodule
do_something_with(mymodule.MyAttribute)

# Explicit import within function
def my_function():
    from mymodule import MyAttribute
    do_something_with(MyAttribute)

# Explicit import within class
class MyClass:
    def __init__(self):
        from otherpackage import OtherVariable
        self.other_variable = OtherVariable

Python 3는 명시적 가져오기를 시행하고 스타 가져오기를 제한함으로써 가져오기 명확성을 향상하고 네임스페이스 충돌을 줄이며 보다 구조화되고 유지 관리하기 쉬운 코드베이스를 촉진하는 것을 목표로 합니다.

위 내용은 PEP 404는 Python의 Import 문을 어떻게 변경했나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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