


Apakah perbezaan antara import mutlak dan relatif dalam Python?
Import mutlak menentukan laluan penuh dari pakej peringkat atas, sementara import relatif menggunakan titik-titik untuk modul rujukan berbanding dengan pakej semasa; 1. Import mutlak lebih jelas dan lebih disukai untuk dibaca; 2. Import relatif berguna untuk pakej bersarang dan refactoring; 3. Import relatif hanya berfungsi dalam pakej dan tidak boleh digunakan dalam skrip mandiri; 4. Modul berjalan dengan import relatif memerlukan menggunakan pakej python -m.module; 5. Amalan terbaik adalah menggunakan import mutlak melainkan jika laluannya terlalu panjang, di mana import relatif boleh diterima; Kedua -duanya mempunyai kes menggunakan, tetapi import mutlak secara amnya meningkatkan kejelasan dan penyelenggaraan.
Di Python, import membolehkan anda menggunakan kod dari satu modul yang lain. Perbezaan antara import mutlak dan relatif terletak pada bagaimana anda menentukan lokasi modul yang anda import.
Import mutlak
Import mutlak menentukan laluan penuh ke modul bermula dari pakej peringkat atas. Ia tidak jelas dan umumnya lebih disukai kerana ia jelas dan kurang rawan kesilapan.
Sebagai contoh, katakan anda mempunyai struktur pakej ini:
mypackage/ __init__.py module_a.py subpackage/ __init__.py module_b.py module_c.py
Jika module_c.py
mahu mengimport module_a.py
, import mutlak akan kelihatan seperti:
dari modul import mypackage_a
Atau jika module_c
mahu mengimport sesuatu dari module_b
(dalam subpackage yang sama):
dari mypackage.subpackage import module_b
Import mutlak diselesaikan dengan mengikuti laluan penuh dari akar projek atau dari direktori yang disenaraikan dalam sys.path
.
Import relatif
Import relatif menggunakan titik ( .
) Untuk menunjukkan pakej semasa dan ibu bapa. Mereka dipanggil "relatif" kerana mereka berdasarkan lokasi modul semasa.
Dalam contoh yang sama, jika module_c.py
mahu mengimport module_b.py
dalam subpackage yang sama, ia boleh menggunakan:
dari. import module_b
Atau untuk mengimport module_a
dari pakej induk:
dari .. modul import_a
Di sini:
- Satu titik (
.
) Bermaksud "pakej semasa ini" - Dua titik (
..
) bermaksud "pakej induk" - Tiga titik (
...
) naik tahap lain, dan sebagainya.
Perbezaan utama
- Kejelasan dan Penyelenggaraan : Import mutlak lebih jelas dan lebih mudah difahami, terutamanya dalam projek besar.
- Kemudahalihan : Import relatif berguna apabila anda refactoring atau pakej bergerak, kerana mereka tidak memerlukan mengemas kini laluan penuh.
- Sekatan : Import relatif hanya berfungsi di dalam pakej (iaitu, dalam modul yang merupakan sebahagian daripada pakej), dan mereka tidak boleh digunakan dalam skrip mandiri atau ketika menjalankan modul dengan
python module.py
secara langsung. - Konteks Pelaksanaan : Anda tidak boleh menjalankan modul menggunakan import relatif secara langsung dengan
python module_c.py
- anda akan mendapatSystemError
atauImportError
. Sebaliknya, anda mesti menjalankannya sebagai modul dalam pakej menggunakanpython -m mypackage.subpackage.module_c
.
Amalan terbaik
- Gunakan import mutlak apabila mungkin - mereka lebih mudah dibaca dan kurang rapuh.
- Gunakan import relatif apabila berurusan dengan pakej yang sangat bersarang dan jalan mutlak menjadi panjang dan berulang -ulang.
- Elakkan mencampurkan kedua -dua gaya secara berlebihan dalam fail yang sama untuk memastikan perkara yang konsisten.
Pada asasnya, import mutlak memberitahu Python tepat di mana untuk melihat dari atas ke bawah, sementara import relatif mengatakan "melihat berdekatan" menggunakan titik. Kedua -duanya mempunyai tempat mereka, tetapi kejelasan biasanya menang dengan mutlak.
Atas ialah kandungan terperinci Apakah perbezaan antara import mutlak dan relatif dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Classmethodsinpythonareboundtotheclassandnottoinstances, membolehkanThemTobeCalledWithoutCreatingAnobject.1.theyaredefinedusingthe@Classmethoddecoratorandtakeclsasthefirstparameter, referringtotheclassitervarfe.2.TheycanCasteScess,

Asyncio.queue adalah alat giliran untuk komunikasi yang selamat antara tugas -tugas asynchronous. 1. Pengeluar menambah data melalui Awaitqueue.put (item), dan pengguna menggunakan Awaitqueue.get () untuk mendapatkan data; 2. Untuk setiap item yang anda proses, anda perlu memanggil giliran.task_done () untuk menunggu giliran.join () untuk menyelesaikan semua tugas; 3. Gunakan tiada sebagai isyarat akhir untuk memberitahu pengguna untuk berhenti; 4 Apabila pengguna berganda, isyarat akhir perlu dihantar atau semua tugas telah diproses sebelum membatalkan tugas; 5. Giliran menyokong menetapkan kapasiti had maksimum, meletakkan dan mendapatkan operasi secara automatik menggantung dan tidak menyekat gelung acara, dan program akhirnya melewati Canc

Ekspresi biasa dilaksanakan di Python melalui modul Re untuk mencari, memadankan dan memanipulasi rentetan. 1. Gunakan re.search () untuk mencari perlawanan pertama dalam keseluruhan rentetan, re.match () hanya sepadan pada permulaan rentetan; 2. Gunakan kurungan () untuk menangkap subkumpulan yang sepadan, yang boleh dinamakan untuk meningkatkan kebolehbacaan; 3. Re.findall () mengembalikan semua perlawanan yang tidak bertindih, dan re.finditer () mengembalikan iterator objek yang sepadan; 4. Re.sub () menggantikan teks yang sepadan dan menyokong penggantian fungsi dinamik; 5. Corak umum termasuk \ d, \ w, \ s, dan lain -lain, anda boleh menggunakan re.ignorecase, re.multiline, re.dotall, re re.

Untuk menyahpepijat aplikasi Python jauh, anda perlu menggunakan debugpy dan mengkonfigurasi pemancar port dan pemetaan jalan: Pertama, pasang debugpy pada mesin jauh dan ubah suai kod untuk mendengar port 5678, hantar port jauh ke kawasan tempatan melalui terowong SSH, kemudian konfigurasi Akhirnya, mulakan aplikasi dan sambungkan ke debugger untuk merealisasikan debugging jarak jauh, pemeriksaan berubah -ubah dan melangkah melangkah. Seluruh proses bergantung pada debugpy, port pemancar dan pemadanan jalan yang tepat.

Memastikanpythonisinstalledbyrunningpython-versionorpython3-versionintheterminal; ifnotinstalled, downloadfrompython.organdaddtopath.2.insublimetext, goototools> buangansystem>

Untuk menjalankan skrip Python, anda perlu mengkonfigurasi sistem membina sublimetext: 1. Pastikan Python dipasang dan tersedia pada baris arahan; 2. Buat sistem binaan baru dalam sublimetext, masukkan {"cmd": ["python", "-u", "$ file"], "file_regex": "^[] file \" (...?) \ ", Line ([0-9]*)", "pemilih": & qu

InstallandconfigurelspwithapythonlanguageageageLikePylspforide-likefeaturessuchassaferename, findreferences, andgotodefinition.2.USESUBLIMETEXT'SfindinFileswithWholeWordandRegexOptionsForfacheFactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoringsfactoring

AbsoluteImportsSpecifyTheFullPathfromthetop-levelpackage, whilerelativeMportsusedotStoreForerencemodulesrelativeTothecurrentPackage; 1.bsoluteImportsareCareclearerandpreferredforability;
