Jadual Kandungan[Sembunyi][Tunjukkan]
Kuliah ini akan merangkumi modul dan pakej dalam Python.
Ia adalah cara untuk mengatur kod anda dalam bentuk fail dan sangat penting jika anda berhasrat untuk membina aplikasi web dengan Python
Modul
Modul dalam Python pada asasnya ialah fail dengan beberapa kod python yang kami gunakan untuk menyusun kod kami ke dalam fail. Fikirkan ia seperti bahagian di pasar raya. Apabila anda pergi ke pasar raya terdapat bahagian yang berbeza untuk buah-buahan, sayur-sayuran, produk pembersih dll. Anda tidak melihat satu bahagian dengan semua produk.
Ia adalah konsep yang sama dalam pengaturcaraan. Daripada menulis semua kod kami dengan semua fungsi dan kelas dalam main.py, kami memecahkan kod kami kepada berbilang fail. Setiap fail dirujuk sebagai modul. Dengan ini, bukan sahaja kod kami lebih teratur dan tersusun, tetapi kami juga mempunyai keupayaan untuk menggunakan semula kod kami. Mari kita lihat melalui contoh.
Mari kita tentukan dua fungsi untuk menukar berat daripada paun kepada kilogram dan sebaliknya.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Kini, kita boleh mengambil kedua-dua fungsi ini dan meletakkannya dalam modul berasingan yang dipanggil "penukar", dan kemudian ia boleh diimport ke dalam mana-mana program yang memerlukan fungsi penukar ini. Biar saya tunjukkan kepada anda cara melakukan ini.
Mari buka panel projek kami dan klik kanan projek dan tambah fail baharu. Kami akan memanggil fail ini "Converters.py".
Sekarang salin kod daripada fail lalai dan tampalkannya ke dalam "Converters.py".
Dengan ini, kami telah membersihkan modul utama kami dan ia tidak kembung dengan fungsi yang berbeza. Semasa kami menulis lebih banyak fungsi dengan kelas, kami meletakkannya dalam modul yang sepadan. Modul harus mengandungi semua fungsi dan kelas yang berkaitan. Sekarang, kami mahu mengimport modul penukar ke dalam modul apl kami. Untuk melakukan ini, tulis import converters
di bahagian atas tanpa sambungan ".py".
Kita boleh mengakses ahli modul dengan menggunakan pengendali titik yang serupa dengan kaedah.
Mari tukarkan 70 kg kepada paun:
Terdapat juga sintaks lain untuk mengimport modul. Daripada mengimport keseluruhan modul, kami boleh mengimport fungsi tertentu daripada modul tersebut. Kita boleh menaip from Converters import
dan tekan “control + space untuk menunjukkan senarai fungsi yang tersedia. Dengan ini, kita boleh terus memanggil fungsi ini.
Senaman
Inilah senaman anda.
Ini berkaitan dengan latihan daripada kuliah di mana kami membincangkan "untuk gelung” di mana kami menulis program untuk mengetahui nombor terbesar daripada senarai
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Kod ini pada masa ini tidak mempunyai organisasi. Kami tidak mempunyai sebarang fungsi atau modul dan program ini ditulis dalam satu fail. Itu tidak mengapa untuk program kecil tetapi apabila program anda berkembang, anda perlu menyusun kod anda dengan betul ke dalam kelas dan modul. Oleh itu, sebagai sebahagian daripada latihan ini, saya mahu anda menulis fungsi, panggilnya find_max
. Fungsi ini harus mengambil senarai dan mengembalikan nombor terbesar dalam senarai itu. Selepas itu teruskan dan letakkan fungsi ini dalam modul yang berasingan, ekstrak dari sini dan letakkan dalam modul yang dipanggil utils
. Modul ini harus mengandungi sekumpulan fungsi utiliti. Import utils
modul ke dalam modul semasa dan panggil find_max
fungsi. Akhir sekali, dapatkan hasilnya dan cetak pada terminal.
Latihan ini agak mencabar tetapi mudah dilakukan.
Penyelesaian
Mulakan dengan mentakrifkan fungsi find_max
dan tambahkan parameter yang dipanggil nombor. Di dalam fungsi ini, tulis algoritma untuk mencari nombor terbesar dalam senarai.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Simpan kod ini dalam fail "utils.py" sebagai modul.
Kembali ke program utama kami, hanya import modul dengan salah satu daripada dua sintaks dan hanya laksanakan logik.
Satu perkara, saya perlu membawa perhatian anda ialah yang terjejas max
. Sebabnya ialah max
ialah fungsi terbina dalam Python dan kami mentakrifkannya semula. Jadi ini adalah amaran daripada Pengkompil Python bahawa kita tidak boleh lagi menggunakan maks sebagai fungsi terbina dalamnya.
Modul Terbina dalam Python
Python datang dengan perpustakaan standard yang mengandungi beberapa modul untuk tugas biasa seperti menghantar e-mel, bekerja dengan tarikh dan masa, menjana nilai rawak dan kata laluan dan sebagainya. Terdapat begitu banyak modul yang telah dibina ke dalam Python yang bermakna terdapat banyak fungsi yang boleh kita gunakan semula. Anda boleh mencari modul ini disini.
Kami
Pakej pada asasnya adalah cara lain untuk mengatur kod kami di atas modul. Projek sebenar boleh mengandungi ratusan atau bahkan ribuan modul dan dari masa ke masa direktori kami akan menjadi kembung dengan begitu banyak fail. Oleh itu, pendekatan yang lebih baik adalah untuk menyusun modul berkaitan di dalam pakej yang menjadikan pakej sebagai bekas untuk berbilang modul.
Direktori baharu ditambahkan pada projek dan semua modul berkaitan ditambahkan pada direktori tersebut. Sebagai contoh, fikirkan pusat membeli-belah. Terdapat bahagian yang berbeza untuk pakaian lelaki, wanita dan kanak-kanak di pusat membeli-belah yang seperti pakej. Setiap bahagian mempunyai kawasan yang berbeza untuk pelbagai jenis produk seperti kasut, kemeja-T dan jaket. Fikirkan ini sebagai modul.
Mari lihat, cara membuat dan menggunakan pakej dalam Python.
Mula-mula, tambah direktori baharu daripada panel projek. Mari kita panggil ia "eCommerce". Pakej ini akan mengandungi semua modul yang berkaitan dengan aplikasi eCommerce.
Ia masih merupakan direktori kosong dan untuk menukarnya menjadi pakej, kita perlu mencipta fail khas di dalamnya. Tambah fail python baharu dalam direktori ini dan namakan fail itu “__init__”. Ia adalah konvensyen khas dalam Python dan apabila jurubahasa Python melihat fail dengan nama ini dalam direktori, ia menganggap direktori ini sebagai pakej.
Kami juga mempunyai kaedah alternatif dan ringkas untuk membuat pakej. Cuma klik kanan panel projek dan buat pakej Python daripada senarai. Namakannya "eCommerce" dan itu sahaja. Ia secara automatik akan mencipta direktori dengan fail Python bernama "__init__".
Sekarang, mari buat modul dalam pakej dan namakannya "penghantaran". Dalam modul ini, mari kita cipta fungsi mudah untuk mengira kos penghantaran.
def calc_shipping():
print("calc_shipping")
Untuk mengakses fungsi ini dalam modul utama kami, kami perlu mengaksesnya melalui pakej e-dagang. Sekali lagi kami mempunyai dua kaedah untuk mengimport modul ini.
Dalam kaedah pertama, kita boleh mengimport keseluruhan modul dan kemudian memanggil fungsi secara bebas seperti ini:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Walau bagaimanapun, dengan pendekatan ini, memanggil salah satu fungsi ke modul ini memerlukan awalan dengannya eCommerce.shipping.
Itu sangat bertele-tele. Jadi, apabila bekerja dengan pakej kita sering menggunakan pendekatan kedua dan menggunakan from
kenyataan.
from eCommerce.shipping import calc_shipping
calc_shipping()
Jika anda mempunyai berbilang fungsi dalam satu modul, anda boleh mengimport kesemuanya dalam satu baris dengan menggunakan koma di antaranya. Katakan terdapat fungsi lain untuk mengira cukai dalam modul penghantaran kami. Itu akan diimport seperti ini:
from eCommerce.shipping import calc_shipping, calc_tax
Anda juga boleh mengimport modul individu dan membiarkan fungsi dipanggil pada peringkat seterusnya dalam program. Mari kita import penghantaran modul dan kemudian gunakan operator titik untuk memanggil fungsi tersebut calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Bungkus!
Pakej dan Modul sangat penting dalam Python. Terutama, apabila anda ingin bekerja dengan rangka kerja seperti Django yang digunakan untuk membina aplikasi web dengan Python. Kami akan melihat Django semasa kursus Python yang lain.
Ini adalah kuliah konvensional terakhir dalam siri ini. Kuliah seterusnya akan menyimpang daripada format biasa kami dan kami akan mempelajari beberapa kes penggunaan penting dalam Python. Itu akan menandakan berakhirnya siri ini dan kami akan beralih ke siri Python kami yang seterusnya. Nantikan untuk itu.
Sila tinggalkan balasan anda