Python의 상호 가져오기 시나리오에서 AttributeError를 방지하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-20 13:06:30
원래의
140명이 탐색했습니다.

How to Avoid AttributeError in Mutual Import Scenarios in Python?

속성 오류: 상호 가져오기 시나리오에서 '모듈' 객체에 속성이 부족합니다.

Python에서는 모듈 간 상호 가져오기를 처리할 때 일반적인 오류가 발생합니다. 다음 예를 고려하십시오.

<code class="python"># a.py
import b

# Functions defined within a.py...

# b.py
import a

# Functions defined within b.py...</code>
로그인 후 복사

a.py를 실행하면 다음 오류가 발생할 수 있습니다.

AttributeError: 'module' object has no attribute 'hi'
로그인 후 복사

이 오류는 a.py가 hi 속성에 액세스할 수 없음을 나타냅니다. 가져온 b.py 모듈. 이 오류의 원인을 이해하려면 상호 최상위 가져오기의 함정을 인식하는 것이 중요합니다.

일반적으로 상호 가져오기는 순환 종속성을 초래하고 코드 유지 관리를 어렵게 만들 수 있으므로 권장되지 않습니다. 대신 Python에서는 함수 내에서 모듈을 가져오는 것을 권장합니다. 주어진 예에서는 다음과 같이 a.py와 b.py를 모두 수정하여 문제를 해결할 수 있습니다.

<code class="python"># a.py
def import_b_and_call_hi():
    import b
    b.hi()

# Functions defined within a.py...

# b.py
def hi():
    print("hi")</code>
로그인 후 복사

이제 a.py가 실행되면 b.py를 원활하게 가져오고 호출합니다. import_b_and_call_hi 함수 내의 hi 함수. 이 기술을 사용하면 상호 가져오기로 인해 종속성 문제가 발생하지 않습니다.

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

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!