>백엔드 개발 >파이썬 튜토리얼 >Python에서 순환 가져오기를 어떻게 피하거나 관리할 수 있나요?

Python에서 순환 가져오기를 어떻게 피하거나 관리할 수 있나요?

DDD
DDD원래의
2024-12-20 02:32:09278검색

How Can Circular Imports in Python Be Avoided or Managed?

상호 또는 순환 가져오기 문제

Python의 두 모듈이 서로 가져오려고 하면 겉보기에 예상했던 결과는 가져오기 성공일 것입니다. . 그러나 여러 모듈이 주기적 가져오기 시도에 참여하는 시나리오는 복잡해집니다.

직접 가져오기와 From 가져오기

직접 가져오기를 시도하는 경우(예: bar에서 foo를 가져옵니다. foo.py의 py 및 가져오기 막대) 가져오기는 일반적으로 성공적으로 실행됩니다. 두 모듈 모두 타임코드 실행이 시작될 때 서로 참조하여 로드되고 설정됩니다.

"from" 가져오기를 사용할 때 문제가 발생합니다(예: from foo import abc 및 from bar import xyz). 이러한 경우 각 모듈은 자체 가져오기 전에 이미 가져온 다른 모듈이 있어야 합니다. 이로 인해 교착 상태가 발생합니다.

Python에서 순환 가져오기 작업

순환 가져오기 문제가 발생할 가능성이 있음에도 불구하고 문제를 일으키지 않는 경우가 있습니다. 특정 Python 버전의 예는 다음과 같습니다.

  • Python 2: 모듈 상단에서 직접 가져오기
  • Python 3:

    • 직접 수입 또는 상대 "from" 수입 모듈 상단
    • 모듈 하단에 명시적으로 가져온 속성이 있는 직접 가져오기 또는 상대적이지 않은 "from" 가져오기

추가 고려 사항

Star 임포트(예: from foo import *)는 다음과 같은 추가 합병증을 유발할 수 있습니다. 아래 제공된 참고자료에서는 다루지 않습니다.

위 내용은 Python에서 순환 가져오기를 어떻게 피하거나 관리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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