Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah "import *" Sebenarnya Berfungsi dalam Python?

Bagaimanakah "import *" Sebenarnya Berfungsi dalam Python?

DDD
DDDasal
2024-11-16 14:45:03732semak imbas

How Does

Merungkai Enigma "import *"

Apakah "import *" Import?

Dalam Python, "import *" mengimport segala-galanya daripada modul yang ditentukan ke dalam modul semasa. Ini membenarkan akses terus kepada objek yang diimport tanpa meletakkannya awalan dengan nama modul.

Contohnya:

>>> from math import *
>>> pi
3.141592653589793
>>> sin(pi/2)
1.0

Terperangkap dalam Web Perlanggaran Nama

Walau bagaimanapun, mengimport "semuanya" dengan "*" tidak disyorkan kerana ia boleh mencipta perlanggaran ruang nama dengan pembolehubah atau fungsi sedia ada. Selain itu, ia mungkin tidak cekap jika sejumlah besar objek diimport.

Mengimport secara Eksplisit lwn. Mengimport dengan "*"

Adalah lebih baik untuk mengimport secara eksplisit hanya objek yang diperlukan:

>>> from math import pi
>>> pi
3.141592653589793
>>> sin(pi/2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined

Sebagai alternatif, modul boleh diimport di bawah ruang nama atau aliasnya sendiri:

>>> import math
>>> math.pi
3.141592653589793
>>> import math as m
>>> m.pi
3.141592653589793

Pengecualian kepada "* Import"

Dalam kes tertentu, mungkin sesuai untuk mengimport semua dengan "". Sebagai contoh, sesetengah perpustakaan menyediakan sub-modul yang direka khusus untuk diimport dengan "" dan mengandungi pemalar dan fungsi yang biasa digunakan.

Memahami Mekanisme "* Import"

Dengan "import *", objek berikut diimport:

  • Semua nama yang disenaraikan dalam pembolehubah "__all__" modul (jika ditakrifkan).
  • Semua nama kecuali yang bermula dengan garis bawah ("_"), melainkan pembolehubah "__all__" ditakrifkan.

Kehalusan Sub-modul

Bertentangan dengan persepsi biasa, "from xyz import " tidak tidak mengimport sub-modul. Sub-modul mesti diimport secara eksplisit secara berasingan, mis. "dari urllib.request import ".

Atas ialah kandungan terperinci Bagaimanakah "import *" Sebenarnya Berfungsi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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