Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pernyataan Import Berubah dalam Python 3?

Bagaimanakah Pernyataan Import Berubah dalam Python 3?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 07:26:10216semak imbas

How Have Import Statements Changed in 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!

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