Pembina Python
- 5019
- 593
- Chris Little I
Pengenalan
Sekarang, anda harus biasa dengan cara kelas asas bekerja di Python. Sekiranya kelas adalah apa yang anda lihat, mereka akan cukup tegar dan tidak semua berguna.
Syukurlah, kelas lebih daripada itu. Mereka direka untuk menjadi lebih mudah disesuaikan dan boleh mengambil maklumat untuk membentuk cara mereka melihat pada mulanya. Tidak setiap kereta bermula sama persis, dan tidak sepatutnya kelas. Lagipun, betapa buruknya jika setiap kereta adalah oren 71 'ford pinto? Itu bukan keadaan yang baik.
Menulis kelas
Mulakan dengan menubuhkan kelas seperti yang ada di panduan terakhir. Kelas ini akan berubah sepanjang panduan ini. Ia akan bergerak daripada menjadi keadaan tegar, seperti fotokopi, ke templat yang dapat menghasilkan pelbagai objek unik dalam garis besar kelas.
Tulis baris pertama kelas, menentukannya sebagai kelas dan menamakannya. Panduan ini akan melekat dengan analogi kereta dari sebelumnya. Jangan lupa lulus kelas anda objek
supaya ia memanjangkan pangkalannya objek
kelas.
kereta kelas (objek):
Di bawah itu, indent dan buat pembolehubah anda. Biasanya, pembolehubah kelas dikumpulkan berhampiran bahagian atas kelas dan kaedah disimpan di bawah. Ia tidak wajib, tetapi ia membantu mengekalkan kod yang kemas. Hanya buat pembolehubah untuk membuat, model, tahun, perbatuan, dan warna. Tidak ada gunanya membina kelas terperinci super.
Make = "Ford" Model = "Pinto" tahun = "1971" Mileage = "253812" Color = "Orange"
Pada ketika ini, anda boleh menguji pembolehubah anda untuk memastikan kelas anda berfungsi dengan baik. Buat dan objek, dan cuba mencetak model kereta anda. Kemudian, buat semula pemboleh ubah model, dan cetak lagi.
mycar = cetak () cetak ("kereta saya adalah % s" % mycar.model) mycar.Model = "Mustang" cetak ("Kereta saya adalah % s" % mycar.model)
Itu adalah peningkatan, tetapi kereta anda masih tidak dapat berbuat apa -apa. Sudah tiba masanya untuk menambah kaedah. Buat kaedah baru di kelas anda yang dipanggil bergerak_forward
yang menerima pemboleh ubah yang dipanggil, "Kelajuan."Kemudian, cetak model kereta anda dan berapa cepatnya. Jangan lupa memasukkan diri
.
def move_forward (diri, kelajuan): cetak (" %s anda bergerak ke hadapan pada %s" %(diri.model, kelajuan))
Menguji itu dengan kelas anda.
kereta saya.bergerak_forward ("25mph")
Semuanya berjalan lancar, dan kereta anda semestinya berjalan.
Mewujudkan pembina
Menukar pembolehubah selepas objek dibuat adalah kikuk dan tidak cekap. Bukan sahaja anda membuang masa, tetapi ia juga menaikkan kod anda. Ini benar terutamanya jika anda membuat pelbagai contoh kelas yang sama dan mengubah setiap satu.
Terdapat konsep dalam pengaturcaraan berorientasikan objek yang disebut a Pembina
. Pembina adalah kaedah khas yang membolehkan objek mengambil argumen apabila ia dibuat dan secara automatik menjalankan tindakan. Mereka biasanya digunakan untuk memberikan pembolehubah pada masa objek dimandikan.
Dalam kes Python, anda membuat pembina seperti anda akan menggunakan kaedah lain, menggunakan Dev
, Tetapi setiap pembina mempunyai nama yang sama, __di dalamnya__
. Anda boleh memikirkan __di dalamnya__
sebagai pendek untuk memulakan kerana ia dijalankan apabila objek dimulakan.
Buat pembina untuk kereta anda yang mengambil semua pembolehubah sebagai parameter dan menyerahkannya kepada pembolehubah dengan diri
. Pemboleh ubah contoh hanyalah pemboleh ubah yang wujud dalam contoh objek tertentu.
def __init __ (diri, membuat, model, tahun, jarak tempuh, warna): diri.membuat = membuat diri.Model = Model Diri.tahun = tahun diri.perbatuan = jarak tempuh diri.warna = warna
Pastikan untuk memadam pengisytiharan pembolehubah lama. Anda tidak memerlukannya lagi.
Menggunakan pembina
Jalankan kod anda sekali lagi, dan lihat apa yang berlaku. Sekiranya anda mendapat ralat, anda melakukannya dengan betul. Sekarang, setiap kali anda membuat contoh Kereta ()
, anda perlu lulus argumen yang cukup untuk memadankan parameter yang anda tentukan.
Kembali dan ubah suai instantiasi kereta saya
untuk menyampaikan hujah yang diperlukan.
MyCar = kereta ('Dodge', 'Challenger', '2017', 1500, 'Black')
Jalankan kod anda lagi. Semuanya mesti berfungsi, dan anda harus menjalankan kereta yang berbeza.
Seperti yang sudah anda lihat, ini bukan sistem yang sempurna. Bagaimana jika anda masih mahukan templat lalai, jadi anda tidak perlu lulus dalam setiap hujah? Anda juga boleh melakukannya juga. Anda hanya perlu menetapkan setiap parameter dalam pembina anda sama dengan nilai yang anda mahu menjadi lalai.
def __init __ (diri, membuat = 'ford', model = 'pinto', tahun = '1971', jarak tempuh = '253812', warna = 'oren'): diri.membuat = membuat diri.Model = Model Diri.tahun = tahun diri.perbatuan = jarak tempuh diri.warna = warna
Sekiranya anda membuat contoh baru Kereta ()
Dan jangan lulus apa -apa, ia akan membuat ford pinto lama anda yang baik. Cuba membandingkan mereka bersebelahan untuk melihat perbezaannya.
mycar = car () mynewcar = car ('Dodge', 'Challenger', '2017', 1500, 'Black') Mycar.bergerak_forward ('25mph') mynewcar.bergerak_forward ('85mph')
Pemikiran penutupan
Ia akan menghisap jika setiap kereta adalah 71 'ford pinto. Ia adalah perkara yang sama untuk objek. Sekiranya anda terpaksa membuat kelas baru sebagai templat untuk setiap variasi objek, tidak akan ada nilai dalam pengaturcaraan berorientasikan objek. Pembina membenarkan kelas menjadi lebih cair dan boleh disesuaikan. Anda boleh membuat banyak contoh baru objek yang anda perlukan dari kelas yang sama tanpa perlu kembali dan menukar apa -apa.
Amalan membuat kelas baru dan menambah pembina, kemudian menggunakan kelas itu sedikit dalam skrip anda.
Latihan
- Buat kelas baru yang dipanggil "Komputer."
- Buat pembina untuk "komputer" yang memerlukan empat pembolehubah.
- Cetak salah satu pembolehubah anda. Menetapkan semula nilainya, dan cetak lagi.
- Buat kaedah yang menggunakan sekurang -kurangnya dua pembolehubah anda.
- Melaksanakan pembina untuk "komputer" yang menerima semua pembolehubah anda.
- Buat contoh baru "komputer" dan lulus hujah yang betul.
- Jalankan kaedah anda pada contoh baru "Komputer."
- Tambahkan nilai lalai ke pembina "komputer".
- Buat contoh kosong "Komputer."
- Jalankan kaedah anda pada contoh kosong baru.
Tutorial Linux Berkaitan:
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Perkara yang hendak dipasang di Ubuntu 20.04
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
- Menguasai Gelung Skrip Bash
- Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
- Gelung bersarang dalam skrip bash
- Ubuntu 20.04 Panduan
- Tutorial Debugging GDB untuk Pemula
- Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..