Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `__import__` dan `importlib.import_module` Berbeza Apabila Mengimport Modul daripada Strings dalam Python?

Bagaimanakah `__import__` dan `importlib.import_module` Berbeza Apabila Mengimport Modul daripada Strings dalam Python?

Linda Hamilton
Lepaskan: 2024-12-06 09:08:15
asal
163 orang telah melayarinya

How Do `__import__` and `importlib.import_module` Differ When Importing Modules from Strings in Python?

Hasil Berbeza Menggunakan "__import__" dan Pernyataan Import untuk Mengimport Modul daripada Rentetan

Apabila bekerja dengan perpustakaan bersarang, tugas biasa ialah mengimport submodul secara dinamik menggunakan pembolehubah rentetan sebagai laluan import. Walau bagaimanapun, fungsi "__import__" boleh menghasilkan hasil yang berbeza berbanding dengan pernyataan import biasa.

Dalam contoh anda, apabila menggunakan "__import__" tanpa menyatakan argumen "fromlist":

i = __import__('matplotlib.text')
Salin selepas log masuk

modul i yang diimport termasuk kedua-dua modul matplotlib asas dan sesuatu tambahan. Untuk mengimport submodul matplotlib.text secara khusus, anda boleh mengubah suai kod kepada:

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

Dalam Python 3.1 atau lebih baru, anda juga boleh menggunakan modul importlib:

import importlib

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

Berikut ialah beberapa nota tambahan untuk dipertimbangkan:

  • Untuk mengimport modul daripada sub-folder, laluan import hendaklah ditentukan dengan sewajarnya. Contohnya, untuk mengimport email.py daripada subfolder ciri, gunakan:
importlib.import_module("feature.email")
Salin selepas log masuk
  • Sebelum Python 3.3, fail __init__.py diwajibkan dalam folder yang mengandungi modul yang diimport. Ini tidak lagi diperlukan sejak Python 3.3.

Atas ialah kandungan terperinci Bagaimanakah `__import__` dan `importlib.import_module` Berbeza Apabila Mengimport Modul daripada Strings dalam Python?. 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