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

  1. 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.

  2. Tambahkan pernyataan impor: Untuk memungkinkan kelas Project diimpor langsung dari controllers, tambahkan baris berikut ke __init__.py Anda:

    from project import Project
    

    Ini memberi tahu Python untuk mengimpor kelas Project dari project.py secara otomatis ketika Anda mengimpor paket controllers.

  3. 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!