순환 가져오기 종속성: 일반적인 Python 함정
순환 가져오기 종속성을 만나면 특히 모듈이 자주 상호 연결되는 Python에서 실망스러울 수 있습니다. 이러한 예 중 하나는 패키지의 __init__.py가 다른 패키지를 가져오는 동안 두 번째 패키지 내의 파일이 첫 번째 패키지를 가져오려고 할 때 발생합니다.
제공된 디렉터리 구조를 고려하세요.
a/ __init__.py b/ __init__.py c/ __init__.py c_file.py d/ __init__.py d_file.py
a's에서 __init__.py, c 패키지를 가져옵니다. 그러나 c 패키지 내에 있는 c_file.py는 a.b.d를 가져오려고 시도합니다. 이 순환 종속성으로 인해 런타임 시 b가 존재하지 않는다는 오류가 발생합니다.
문제 해결
한 가지 해결 방법은 가져오기를 연기하는 것입니다. 예를 들어, a/__init__.py에서 함수를 정의할 수 있습니다.
<code class="python">def my_function(): from a.b.c import Blah return Blah()</code>
반드시 필요할 때까지 가져오기를 지연함으로써 순환 종속성을 피할 수 있습니다. 그럼에도 불구하고 패키지 디자인을 다시 고려하는 것이 좋습니다. 이러한 종속성은 때때로 설계 결함이나 리팩토링이 필요하다는 신호일 수 있습니다.
위 내용은 Python에서 순환 가져오기 종속성을 해결하는 방법: 일반적인 함정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!