Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah `__import__` Gagal Mengimport Submodul Sepenuhnya dalam Python, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `__import__` Gagal Mengimport Submodul Sepenuhnya dalam Python, dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-03 03:37:09
asal
1006 orang telah melayarinya

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

Memahami Fungsi import untuk Pemuatan Submodul

Dalam Python, pengimportan modul memainkan peranan penting dalam mengatur dan menggunakan semula kod. Walau bagaimanapun, apabila cuba mengimport submodul daripada pembolehubah rentetan menggunakan fungsi import, hasil yang membingungkan mungkin timbul.

Masalah:

Pertimbangkan kod berikut:

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

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

j = __import__('matplotlib')
z = dir(j)
Salin selepas log masuk

Membandingkan tiga senarai x, y dan z yang didedahkan perbezaan yang tidak dijangka. Khususnya, senarai y kekurangan maklumat tentang kelas utama daripada submodul matplotlib.text, yang terdapat dalam senarai x.

Penyelesaian:

import fungsi memerlukan pemahaman yang teliti. Dengan menambahkan hujah rentetan kosong pada parameter fromlist, kami boleh menentukan bahawa kami ingin mengimport submodul itu sendiri:

i = __import__('matplotlib.text', fromlist=[''])
Salin selepas log masuk

Sekarang, pembolehubah i akan merujuk submodul matplotlib.text dan senarai y akan mengandungi maklumat yang dikehendaki.

Sebagai alternatif, bermula daripada Python 3.1, kita boleh menggunakan importlib pakej:

import importlib

i = importlib.import_module("matplotlib.text")
Salin selepas log masuk

Nota Tambahan:

  • Apabila mengimport fail daripada sub-folder, gunakan sintaks berikut: importlib.import_module("feature.email ")
  • Dalam versi Python sebelum 3.3, mengimport daripada sub-folder tanpa Fail __init__.py tidak boleh dilakukan.

Atas ialah kandungan terperinci Mengapakah `__import__` Gagal Mengimport Submodul Sepenuhnya dalam Python, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan