Dalam artikel ini, anda akan belajar membahagikan asas kod anda menjadi modul yang bersih dan cekap menggunakan pakej Python. Anda juga akan belajar mengimport dan menggunakan pakej pihak anda sendiri atau pihak ketiga dalam program Python anda.
Video: Pakej Python: Susun Kod Anda
Apa itu pakej?
Kami biasanya tidak menyimpan semua fail kami di komputer kami di lokasi yang sama. Kami menggunakan hierarki direktori yang tersusun untuk akses yang lebih mudah.
Fail serupa disimpan dalam direktori yang sama, misalnya, kita dapat menyimpan semua lagu dalam direktori " muzik ". Sesuai dengan ini, Python mempunyai pakej untuk direktori dan modul untuk fail.
Oleh kerana program aplikasi kami bertambah besar dengan banyak modul, kami meletakkan modul serupa dalam satu pakej dan modul yang berbeza dalam pakej yang berbeza. Ini menjadikan projek (program) mudah dikendalikan dan jelas secara konsep.
Begitu juga, kerana direktori boleh mengandungi subdirektori dan fail, paket Python boleh mempunyai sub-pakej dan modul.
Direktori mesti mengandungi fail yang dinamakan __init__.py
agar Python menganggapnya sebagai pakej. Fail ini boleh dibiarkan kosong tetapi kita biasanya meletakkan kod inisialisasi untuk pakej itu dalam fail ini.
Inilah contohnya. Katakan kita sedang mengembangkan permainan. Satu kemungkinan pakej dan modul mungkin seperti yang ditunjukkan dalam gambar di bawah.

Mengimport modul dari pakej
Kita boleh mengimport modul dari pakej menggunakan operator dot (.).
Sebagai contoh, jika kita ingin mengimport start
modul dalam contoh di atas, ia boleh dilakukan seperti berikut:
import Game.Level.start
Sekarang, jika modul ini mengandungi fungsi yang dinamakan select_difficulty()
, kita mesti menggunakan nama penuh untuk merujuknya.
Game.Level.start.select_difficulty(2)
Sekiranya konstruk ini kelihatan panjang, kita boleh mengimport modul tanpa awalan pakej seperti berikut:
from Game.Level import start
Kita sekarang boleh memanggil fungsi seperti berikut:
start.select_difficulty(2)
Cara lain untuk mengimport fungsi yang diperlukan (atau kelas atau pemboleh ubah) dari modul dalam pakej adalah seperti berikut:
from Game.Level.start import select_difficulty
Sekarang kita boleh memanggil fungsi ini secara langsung.
select_difficulty(2)
Walaupun lebih mudah, kaedah ini tidak digalakkan. Menggunakan ruang nama penuh mengelakkan kekeliruan dan mengelakkan dua nama pengecam yang sama bertembung.
Semasa mengimport pakej, Python melihat senarai direktori yang ditentukan sys.path
, sama seperti laluan carian modul.