Menyederhanakan Impor Python Anda: Cara Mengimpor Berdasarkan Kelas, Bukan Berkas
Ketika bekerja dengan Python, terutama dalam proyek yang lebih besar, mengelola impor dengan efektif menjadi sangat penting. Anda mungkin ingin mengakses kelas langsung dari paketnya daripada dari berkasnya yang bersangkutan. Metode ini dapat membuat kode Anda lebih bersih dan lebih mudah dibaca. Dalam pos blog ini, kami akan membahas cara mencapainya dalam proyek Python Anda dengan struktur yang sederhana.
Masalahnya
Pertimbangkan struktur berkas berikut untuk aplikasi Python Anda:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
Dalam kasus ini, jika Anda mendefinisikan kelas Project
di project.py
, mengimpornya di app.py
biasanya akan terlihat seperti ini:
from app.controllers.project import Project
Tetapi, bagaimana jika Anda ingin pernyataan impor Anda lebih singkat dan lebih bersih? Anda mungkin ingin mengimpornya seperti ini:
from app.controllers import Project
Ini tidak hanya menyederhanakan pernyataan impor Anda tetapi juga membuat basis kode Anda terlihat lebih terorganisir. Pertanyaannya adalah: Bagaimana Anda bisa mengatur ini?
Solusinya
Untuk merampingkan proses impor Anda dan memungkinkan mengimpor kelas secara langsung dari paket, Anda perlu melakukan sedikit modifikasi pada berkas __init__.py
yang terletak di direktori controllers
.
Panduan Langkah-demi-Langkah
-
Buka berkas
__init__.py
: Berkas ini biasanya digunakan untuk menginisialisasi paket Python Anda dan memungkinkan Anda mengontrol apa yang diimpor saat Anda mengimpor paket itu sendiri. -
Tambahkan pernyataan impor: Untuk memungkinkan kelas
Project
diimpor langsung daricontrollers
, tambahkan baris berikut ke__init__.py
Anda:from project import Project
Ini memberi tahu Python untuk mengimpor kelas
Project
dariproject.py
secara otomatis ketika Anda mengimpor paketcontrollers
. -
Sesuaikan untuk Impor Absolut: Dengan diperkenalkannya Python 2.7 dan seterusnya, impor absolut menjadi mode default untuk impor. Untuk menghindari konflik potensial dengan modul tingkat atas yang bisa secara kebetulan memiliki nama yang sama (seperti
project
), ada baiknya menyertakan titik untuk menunjukkan impor relatif. Maka, Anda akan memodifikasi impor Anda di__init__.py
menjadi:from .project import Project
Ini menandakan bahwa kelas
Project
diimpor dari paket saat ini (controllers
).
Poin Penting
- Dengan memodifikasi
__init__.py
, Anda secara signifikan merampingkan impor Anda. - Menggunakan titik (.) di depan nama modul memastikan bahwa Anda merujuk pada modul yang benar, yang sangat berguna dalam aplikasi yang lebih besar dengan kemungkinan konflik penamaan.
- Praktik ini tidak hanya meningkatkan keterbacaan kode Anda tetapi juga membantu Anda mempertahankan struktur yang jelas seiring berkembangnya proyek Anda.
Kesimpulan
Dengan mengikuti langkah-langkah sederhana yang dijelaskan di atas, Anda dapat meningkatkan praktik pengkodean Python Anda dengan membuat impor Anda lebih sederhana. Teknik ini tidak hanya menghemat waktu tetapi juga berkontribusi pada kode yang bersih dan mudah dipelihara. Ingat, aplikasi yang terstruktur dengan baik dimulai dengan mengelola impor Anda dengan efektif!
Silakan bereksperimen dengan pendekatan ini dalam proyek Anda sendiri dan lihat perbedaannya!