>  기사  >  백엔드 개발  >  순환 가져오기를 사용하여 Python에서 유형 힌트를 유지하는 방법은 무엇입니까?

순환 가져오기를 사용하여 Python에서 유형 힌트를 유지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-23 13:04:01745검색

How to Maintain Type Hints in Python with Cyclic Imports?

순환 가져오기를 사용하여 Python에서 유형 힌트 유지

대규모 Python 클래스로 작업할 때 더 나은 구성 및 유지 관리를 위해 클래스를 여러 파일로 분할하는 것이 도움이 될 수 있습니다. 그러나 유형 힌트를 유지하면서 이를 달성하는 것은 잠재적인 순환 가져오기로 인해 어려울 수 있습니다.

한 가지 접근 방식은 기본 클래스를 참조하는 믹스인 클래스에서 유형 주석을 사용하는 것입니다. 그러나 이로 인해 Python에서 허용되지 않는 순환 가져오기가 발생할 수 있습니다.

이 문제를 해결하려면 다음과 같은 여러 솔루션을 사용할 수 있습니다.

  • Guard Code Blocks with 'TYPE_CHECKING':

    • 'TYPE_CHECKING' 상수를 확인하는 if 문 내 mixin 클래스의 유형 주석 코드를 묶습니다.
    • 이 상수는 다음으로 설정됩니다. 유형 검사(예: mypy와 같은 도구 사용) 중에는 True이지만 런타임에는 False이므로 순환 종속성을 유발할 수 있는 가져오기를 효과적으로 비활성화합니다.
    • 그러나 이렇게 하려면 유형 힌트에 문자열로 명시적으로 주석을 달아야 합니다. 런타임에는 기호를 사용할 수 없습니다.
  • 'from future 가져오기 주석'을 사용하여 전방 선언 활용:

    • Python 3.7에서는 이 가져오기를 통해 모든 유형 주석을 문자열로 표시할 수 있으므로 명시적인 문자열 주석이 필요하지 않고 가독성이 향상됩니다.
    • 모든 유형 힌트는 문자열이 되며 런타임 시 평가되지 않습니다. , 잠재적으로 코드 동작에 영향을 미칠 수 있습니다.
  • 추상 기본 클래스(ABC) 접근 방식을 고려하세요.

    • Mypy에서는 메인 클래스와 믹스인이 모두 상속하는 ABC입니다.
    • 이 접근 방식은 코드 구조와 유지 관리 가능성이 가장 중요한 대규모 프로젝트에 더 적합할 수 있습니다.

위 내용은 순환 가져오기를 사용하여 Python에서 유형 힌트를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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