Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pernyataan Import Berubah dalam Python 3?
Perubahan dalam Penyata Import dalam Python 3
Dalam Python 3, mekanisme import telah melalui semakan yang ketara, memperkenalkan peraturan baharu untuk import relatif dan mengehadkan import bintang.
Apakah itu Relatif Import?
Import relatif ialah pernyataan import yang merujuk kepada modul atau pakej berbanding dengan lokasi modul semasa dalam sistem fail. Sebagai contoh, pertimbangkan struktur fail berikut:
mypkg/ __init__.py module1.py module2.py
Dalam module2.py, pernyataan daripada module1 import Foo akan menjadi import relatif, kerana ia mengimport kelas Foo daripada modul adik beradik1.
Import Relatif Eksplisit
Python 3 memerlukan import relatif eksplisit, yang jelas nyatakan lokasi modul yang diimport. Tempoh pendahuluan (".") dalam pernyataan import menunjukkan import relatif. Contohnya, daripada .module1 import Foo mengimport Foo daripada modul relatif1.
Pengalihan Keluar Import Relatif Tersirat
Dalam Python 2, import relatif tersirat membenarkan modul menjadi diimport tanpa menyatakan secara jelas lokasinya. Walau bagaimanapun, tingkah laku ini telah ditamatkan dalam Python 3. Sebagai contoh, penyataan import module1 dalam Python 2 akan secara tersirat mengimport module1.py daripada direktori semasa. Walau bagaimanapun, dalam Python 3, pernyataan ini akan menimbulkan ralat, memerlukan import eksplisit menggunakan daripada . import modul1.
Import Bintang
Import Bintang (cth. daripada x import *) hanya dibenarkan dalam kod peringkat modul dalam Python 3. Ini bermakna modul tidak boleh menggunakan bintangkan import apabila mengimport modul lain.
Contoh Penggunaan Relatif Import
Pertimbangkan kod Python 2 berikut:
# module1.py class MyClass: def __init__(self): print("Hello from MyClass")
# module2.py from module1 import MyClass
Dalam Python 3, module2.py perlu ditulis semula sebagai:
# module2.py from .module1 import MyClass
Import relatif eksplisit ini memastikan MyClass diimport dari lokasi yang betul berbanding modul2.
Atas ialah kandungan terperinci Bagaimanakah Pernyataan Import Berubah dalam Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!