Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah 'import *' Sebenarnya Berfungsi dalam Python?

Bagaimanakah 'import *' Sebenarnya Berfungsi dalam Python?

DDD
Lepaskan: 2024-11-16 14:45:03
asal
814 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan