Pakej Python: Bagaimana membuat dan mengimportnya?

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__.pyagar 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.

Struktur Modul Pakej dalam Pengaturcaraan Python

Mengimport modul dari pakej

Kita boleh mengimport modul dari pakej menggunakan operator dot (.).

Sebagai contoh, jika kita ingin mengimport startmodul 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.

Artikel menarik...