Di kalangan pembangun, pengaturcaraan berorientasikan objek telah menarik pengikut yang besar. Bahasa komputer popular Python juga mematuhi paradigma berorientasikan objek.
Ia berkaitan dengan mentakrifkan objek dan kelas dalam Python, yang membentuk asas untuk prinsip OOP. Dalam tutorial ini tentang "pengaturcaraan berorientasikan objek dalam Python," anda akan belajar cara mengisytiharkan kelas Python, mencipta objek daripadanya dan menggunakan empat teknik OOP.
Jadi, perkara pertama dahulu.
Apakah Pengaturcaraan Berorientasikan Objek?
Fokus utama pengaturcaraan berorientasikan objek (OOP) ialah penciptaan "objek". Koleksi pembolehubah dan fungsi yang saling berkaitan membentuk objek.
Pembolehubah ini sering dirujuk sebagai atribut objek, dan kelakuannya sering dirujuk sebagai fungsinya. Item ini menyediakan aplikasi dengan struktur yang lebih berkesan dan mudah difahami. Sebuah kereta adalah contoh barang.
Jika kereta adalah item, atributnya akan termasuk perkara seperti warna, model, harga, jenama, dll. Selain itu, ia akan memecut, memperlahankan dan menukar gear.
Ilustrasi lain: Jika kita menganggap anjing sebagai barang, maka beberapa cirinya mungkin warna, baka, nama, berat, dll. Dan dia akan bergerak, menyalak, bermain, dsb.
Kerana ia menggabungkan konsep dunia sebenar seperti objek, persembunyian, warisan, dll. ke dalam pengaturcaraan, pengaturcaraan berorientasikan objek terkenal. Oleh kerana ia sangat serupa dengan keadaan dunia sebenar, visualisasi dibuat lebih mudah.
Konsep Pengaturcaraan Berorientasikan Objek
Kelas & Objek dalam Python
Seperti semua bahasa berorientasikan objek lain, Python membolehkan anda mereka bentuk kelas untuk menjana objek. Jenis data yang paling popular dalam Python, termasuk rentetan, senarai, kamus dan objek lain, ialah kelas terbina dalam.
Kelas ialah sekumpulan kaedah terpaut dan pembolehubah contoh yang mentakrifkan jenis objek tertentu. Kelas boleh dilihat sebagai model atau templat untuk objek. Pembolehubah yang membentuk kelas dikenali sebagai atribut.
Objek ialah ahli kelas yang mempunyai set atribut yang ditentukan. Oleh sebab itu, sebarang bilangan objek boleh dibuat menggunakan kelas yang sama.
Kelas Python ditakrifkan menggunakan kelas perkataan, yang kemudian diikuti dengan nama kelas dan titik bertindih. Ilustrasi kelas burung nuri mungkin:
Di sini, kami mengisytiharkan Parrot kelas kosong menggunakan kata kunci kelas. Kami mencipta contoh daripada kelas. Contoh ialah objek tertentu yang dibuat daripada kelas tertentu. 'lulus' kerap digunakan sebagai pegangan bagi kod yang pelaksanaannya mungkin kami tinggalkan buat masa ini. Kami boleh melaksanakan kod Python tanpa menimbulkan ralat dengan menggunakan kata kunci "lulus".
Instalasi kelas menghasilkan objek (contoh). Hanya penerangan objek ditakrifkan apabila kelas dicipta. Akibatnya, tiada storan atau RAM diperuntukkan.
Contoh objek kelas burung nuri ialah:
Obj ialah objek kelas Parrot dalam contoh ini.
Katakan kita tahu secara spesifik tentang burung kakak tua. Kami kini akan menunjukkan cara mencipta kelas burung nuri dan objeknya.
Kaedah Khas ( __init__ )
Kaedah yang dipanggil init mentakrifkan atribut yang mesti ada pada setiap objek Parrot (). Apabila objek Parrot baharu dibentuk, fungsi __init__ mencipta keadaan awal objek dengan memberikan nilai yang kami bekalkan dalam sifat objek.
Jadi, setiap contoh baharu kelas dimulakan dengan menggunakan __init__(). Walaupun __init__() boleh menerima sebarang bilangan parameter, diri sentiasa menjadi parameter pertama.
Rujukan kepada contoh kelas aktif disertakan dalam hujah kendiri. Parameter diri, yang memaut ke alamat objek semasa kelas dan memberi kita akses kepada data pembolehubahnya (objek), menandakan itu.
1 Contoh
Kami menubuhkan kelas yang dipanggil Parrot dalam kod di atas. Seterusnya, sifat ditakrifkan. Ciri-ciri sesuatu adalah sifat-sifatnya. Fungsi __init__ kelas adalah tempat ciri-ciri ini ditentukan.
Apabila objek dibentuk, kaedah pemula ialah kaedah yang dipanggil pada mulanya. Kemudian, contoh kelas Parrot dicipta. Blaze dan Wonda dalam contoh ini adalah rujukan (nilai) kepada objek baharu kami. __class .species membolehkan kita mengakses atribut kelas.
Setiap contoh kelas mempunyai ciri yang sama. Ciri-ciri contoh juga boleh diakses menggunakan blaze.name dan blaze.age. Semua contoh kelas mempunyai atribut contoh unik, walaupun.
2 Contoh
Kaedah
Fungsi yang ditakrifkan di dalam badan kelas dipanggil kaedah. Mereka digunakan untuk menentukan bagaimana sesuatu item akan berkelakuan.
Dua kaedah, sing() dan tarian, ditakrifkan dalam aplikasi yang disebutkan di atas (). Kerana ia dipanggil pada objek contoh, seperti nyalaan, ini dirujuk sebagai kaedah contoh.
Asas konsep OOPS
Empat idea teras pengaturcaraan berorientasikan objek ialah:
- Pusaka
- Encapsulation
- Polimorfisme
- Abstraksi
Pusaka
Orang ramai sering memberitahu bayi yang baru lahir bahawa mereka mempunyai ciri-ciri wajah yang menyerupai ibu bapa mereka atau bahawa mereka telah mewarisi ciri-ciri tertentu daripada ibu bapa mereka.
Ada kemungkinan bahawa anda juga telah melihat bahawa anda berkongsi beberapa ciri dengan ibu bapa anda. Situasi dunia sebenar adalah agak serupa dengan warisan juga.
Walau bagaimanapun, dalam kes ini, ciri "kelas induk" diturunkan kepada "kelas kanak-kanak". Aspek ini dirujuk sebagai "sifat" dan "kaedah" dalam konteks ini.
Kelas boleh memperoleh kaedah dan atributnya daripada kelas lain dengan menggunakan teknik yang dikenali sebagai warisan. Warisan ialah proses kelas anak menerima sifat kelas induk.
Contoh:
Kelas induk Manusia diwarisi oleh budak kelas budak dalam contoh di atas. Oleh kerana Boy mewarisi daripada Human, kita boleh mengakses semua kaedah dan atributnya apabila kita mencipta contoh kelas Boy.
Dalam kelas Boy, kaedah yang dipanggil schoolName juga telah ditakrifkan. Objek kelas induk tidak dapat mengakses kaedah schoolName. Kaedah schoolName boleh, bagaimanapun, dipanggil dengan mencipta objek kelas kanak-kanak (Boy).
Encapsulation
Memberi setiap pembolehubah dalam program akses global bukanlah langkah yang bijak apabila bekerja dengan kelas dan mengendalikan data sensitif.
Tanpa memberikan program akses lengkap kepada mana-mana pembolehubah tersebut, enkapsulasi menyediakan mekanisme untuk kita mendapatkan pembolehubah yang diperlukan.
Kaedah yang ditakrifkan secara eksplisit untuk tujuan tersebut boleh digunakan untuk mengemas kini, mengedit atau memadam data daripada pembolehubah. Kaedah pengaturcaraan ini mempunyai kelebihan keselamatan yang dipertingkatkan dan kawalan ke atas input data.
Lihat seberapa cepat pembolehubah boleh diakses dalam tunjuk cara di bawah:
Polimorfisme
Katakan anda menggunakan telefon anda untuk menyemak imbas Suapan Instagram. Apabila anda mendapat keinginan untuk mendengar muzik, anda mengakses Spotify dan mula memainkan lagu kegemaran anda.
Selepas beberapa ketika, anda menerima panggilan, jadi anda menjeda apa sahaja yang anda lakukan di latar belakang untuk menjawabnya. Rakan anda menelefon dan meminta anda menghantar mesej kepada mereka nombor telefon orang tertentu.
Jadi anda menghantar nombor telefon kepadanya melalui SMS dan meneruskan tugas anda. Adakah anda telah mengambil apa-apa? Dengan hanya satu peranti—telefon mudah alih anda—anda boleh melayari suapan, mendengar muzik, menerima dan membuat panggilan telefon serta menghantar mesej.
Oleh itu, polimorfisme adalah setanding dengan itu. Poli bermaksud banyak, dan morf menunjukkan bentuk yang berbeza. Oleh itu, polimorfisme secara keseluruhannya merujuk kepada sesuatu yang mempunyai pelbagai bentuk.
Atau "sesuatu" yang, bergantung pada keadaan, boleh mempamerkan pelbagai tingkah laku. Dalam OOPS, polimorfisme menerangkan fungsi dengan nama yang sama tetapi tingkah laku yang berbeza. Sebagai alternatif, tandatangan fungsi yang berbeza dengan nama fungsi yang sama (parameter dihantar ke fungsi).
Contoh:
Di sini, kita boleh menggunakan haiwan pembolehubah untuk melelaran merentasi objek Zebra dan Arnab, menggunakan kaedah contoh masing-masing. Akibatnya, tingkah laku (warna() & makan()) kedua-dua Zebra dan Arnab diwakili di sini oleh pembolehubah tunggal yang dipanggil haiwan. Oleh itu, ia mematuhi peraturan polimorfisme.
Abstraksi
Anda berkemungkinan besar menggunakan komputer riba, telefon atau tablet untuk membaca kandungan ini. Semasa membacanya, anda juga mungkin mengambil nota, menggariskan petikan utama, dan mungkin menyimpan beberapa maklumat dalam fail peribadi anda.
Apa yang anda boleh lihat apabila anda membaca ini ialah "skrin" dengan data yang dipaparkan kepada anda. Anda hanya melihat kekunci papan kekunci semasa anda menaip, jadi anda tidak perlu risau tentang kehalusan dalaman seperti cara menolak kekunci boleh menyebabkan perkataan itu muncul pada skrin.
Sebagai alternatif, cara menekan butang pada skrin anda boleh melancarkan tab baharu.
Oleh itu, apa sahaja yang boleh kita perhatikan dalam situasi ini adalah abstrak. Kami hanya dapat melihat hasil yang dicipta dan bukan kerumitan dalaman (yang sebenarnya penting kepada kami).
Sama seperti ini, abstraksi hanya mendedahkan fungsi yang dimiliki oleh segala-galanya sambil menyembunyikan sebarang pelaksanaan atau butiran dalaman.
Objektif utama Abstraksi adalah untuk menyembunyikan maklumat latar belakang dan sebarang pelaksanaan data luar supaya orang ramai hanya melihat perkara yang mereka perlu lihat. Ia membantu dalam menguruskan kerumitan kod.
Contoh:
Kelas abstrak berkaitan kenderaan hadir di sini. Kerana ia mewarisi dari kelas abstrak ABC, ia adalah abstrak. Oleh kerana kaedah abstrak tidak ditakrifkan atau kekal kosong, kelas Kenderaan mempunyai kaedah abstrak yang dipanggil no of wheels yang tidak mempunyai definisi.
Mereka menjangkakan kelas yang mewarisi kelas abstrak untuk memberikan pelaksanaan kaedah.
Faedah konsep OOPS
- Dengan merangkum, keselamatan tinggi dan privasi data dicapai.
- Fleksibiliti dalam mempunyai banyak versi polimorfik kelas yang sama.
- Tahap kerumitan kod yang tinggi telah dikurangkan dengan pengabstrakan.
- Daripada menyaring ratusan baris kod untuk mencari satu masalah, modulariti pengaturcaraan menjadikan penyahpepijatan menjadi mudah.
- Penggunaan semula kod disebabkan oleh pewarisan sifat kelas induk kelas anak.
- Penyelesaian masalah yang berkesan adalah mungkin kerana kami mencipta kelas yang melakukan tindakan yang diperlukan untuk setiap masalah mini. Masalah berikut boleh diselesaikan dengan lebih cepat kerana kita boleh menggunakan semula kelas tersebut.
Kesimpulan
Kesimpulannya, kami belajar tentang idea OOPS dalam Python, paradigma pengaturcaraan paling hangat sekarang.
Selepas membaca ini, anda mesti menyedari bahawa paradigma OOPS sepenuhnya berkaitan dengan idea kelas dan objek. dan konsep OOPS seperti enkapsulasi, polimorfisme, pewarisan dan pengabstrakan.
Sila tinggalkan balasan anda