>백엔드 개발 >파이썬 튜토리얼 >`__import__`가 Python에서 하위 모듈을 완전히 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

`__import__`가 Python에서 하위 모듈을 완전히 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-03 03:37:09948검색

Why Does `__import__` Fail to Fully Import Submodules in Python, and How Can I Fix It?

하위 모듈 로드를 위한 import 함수 이해

Python에서 모듈 가져오기는 코드를 구성하고 재사용하는 데 중요한 역할을 합니다. 그러나 import 함수를 사용하여 문자열 변수에서 하위 모듈을 가져오려고 하면 당황스러운 결과가 발생할 수 있습니다.

문제:

다음을 고려하세요. 다음 코드:

import matplotlib.text as text
x = dir(text)

i = __import__('matplotlib.text')
y = dir(i)

j = __import__('matplotlib')
z = dir(j)

세 개의 목록 x, y 및 비교 z는 예상치 못한 차이점을 보여줍니다. 특히 목록 y에는 목록 x에 있는 matplotlib.text 하위 모듈의 기본 클래스에 대한 정보가 부족합니다.

해결책:

import 기능에 대한 세심한 이해가 필요합니다. fromlist 매개변수에 빈 문자열 인수를 추가하면 하위 모듈 자체를 가져오도록 지정할 수 있습니다.

i = __import__('matplotlib.text', fromlist=[''])

이제 변수 i는 matplotlib.text 하위 모듈을 참조하고 목록 y에는

또는 Python 3.1부터 importlib를 사용할 수도 있습니다. 패키지:

import importlib

i = importlib.import_module("matplotlib.text")

추가 참고 사항:

  • 하위 폴더에서 파일을 가져올 때 다음 구문을 사용하십시오: importlib.import_module("feature.email ")
  • Python 3.3 이전 버전에서는 __init__.py 파일이 불가능했습니다.

위 내용은 `__import__`가 Python에서 하위 모듈을 완전히 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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