Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah Python berorientasikan objek atau berorientasikan proses?

Adakah Python berorientasikan objek atau berorientasikan proses?

青灯夜游
青灯夜游asal
2023-01-05 16:54:4910437semak imbas

Python berorientasikan objek. Dari awal reka bentuknya, bahasa Python telah diletakkan sebagai bahasa pengaturcaraan berorientasikan objek "Segala-galanya dalam Python adalah objek" adalah tafsiran sempurna bahasa pengaturcaraan Python. Kelas dan objek ialah ciri penting Python Berbanding dengan bahasa berorientasikan objek yang lain, Python boleh mencipta kelas dan objek dengan mudah Pada masa yang sama, Python juga menyokong tiga ciri utama berorientasikan objek: enkapsulasi, pewarisan dan polimorfisme.

Adakah Python berorientasikan objek atau berorientasikan proses?

Persekitaran pengendalian tutorial ini: sistem windows7, versi python3, komputer DELL G3

Walaupun Python ialah bahasa yang ditafsirkan, bahasa Python direka Dari awal, ia diletakkan sebagai bahasa pengaturcaraan berorientasikan objek "Semuanya dalam Python adalah objek" adalah tafsiran sempurna bahasa pengaturcaraan Python.

Apakah itu berorientasikan objek

Pengaturcaraan berorientasikan objek dibangunkan berdasarkan pengaturcaraan berorientasikan proses Ia mempunyai lebih banyak ciri daripada proses -pengaturcaraan berorientasikan. Pengaturcaraan berorientasikan objek adalah titik permulaan dalam pembangunan pengaturcaraan Ramai pemula akan berhenti belajar pengaturcaraan kerana mereka tidak memahami pengaturcaraan berorientasikan objek.

Pengaturcaraan Berorientasikan Objek (pendek kata OOP) ialah kaedah merangkum kod. Malah, dalam kajian bab sebelumnya, kita telah pun didedahkan kepada enkapsulasi Sebagai contoh, membuang data yang tidak kemas ke dalam senarai adalah enkapsulasi mudah, iaitu pembungkusan tahap data yang biasa digunakan blok kod ke dalam fungsi , iaitu juga sejenis enkapsulasi, pada peringkat pernyataan.

Pengenkapsulan kod sebenarnya menyembunyikan kod khusus yang melaksanakan fungsi tersebut, hanya meninggalkan antara muka untuk pengguna Sama seperti menggunakan komputer, pengguna hanya perlu menggunakan papan kekunci dan tetikus untuk melaksanakan beberapa fungsi. Tidak perlu mengetahui cara ia berfungsi secara dalaman.

Pengaturcaraan berorientasikan objek juga merupakan idea pengkapsulan, tetapi ia jelas lebih maju daripada dua pengkapsulan di atas Ia boleh mensimulasikan perkara dalam dunia nyata dengan lebih baik (melakukannya sebagai objek), dan Merangkumi data dan blok kod (fungsi) yang menerangkan ciri bersama-sama.

Sebagai contoh, jika anda mereka bentuk watak penyu dalam permainan, bagaimanakah anda harus melaksanakannya? Ia akan menjadi lebih mudah untuk menggunakan pemikiran berorientasikan objek, yang boleh diterangkan dalam dua aspek berikut:

  • Diterangkan dari ciri permukaan, contohnya, hijau, mempunyai 4 kaki, berat 10 kg , dengan cangkerang dan sebagainya.

  • Huraikan berdasarkan tingkah lakunya, contohnya, ia boleh merangkak, makan, tidur, menarik balik kepala dan anggota badannya ke dalam cangkangnya, dsb.

Jika kura-kura diwakili oleh kod, ciri-ciri permukaannya boleh diwakili oleh pembolehubah, dan ciri-ciri tingkah lakunya boleh diwakili dengan mewujudkan pelbagai fungsi. Kod rujukan adalah seperti berikut:

class tortoise:
    bodyColor = "绿色"
    footNum = 4
    weight = 10
    hasShell = True
    #会爬
    def crawl(self):
        print("乌龟会爬")
    #会吃东西
    def eat(self):
        print("乌龟吃东西")
    #会睡觉
    def sleep(self):
        print("乌龟在睡觉")
    #会缩到壳里
    def protect(self):
        print("乌龟缩进了壳里")

Perhatikan bahawa kod di atas hanya untuk menunjukkan idea pengaturcaraan berorientasikan objek.

Oleh itu, dari perspektif program tertentu, menggunakan pemikiran berorientasikan objek boleh mensimulasikan sesuatu dengan lebih baik dalam kehidupan sebenar daripada hanya menggunakan pembolehubah atau fungsi sahaja.

Bukan itu sahaja, dalam Python, semua pembolehubah sebenarnya adalah objek, termasuk integer (int), jenis titik terapung (float), rentetan (str), senarai (senarai), tuple (tuple) ), dict dan ditetapkan. Ambil kamus (dict) sebagai contoh Ia mengandungi pelbagai fungsi untuk kita gunakan Contohnya, gunakan keys() untuk mendapatkan semua kunci dalam kamus, gunakan values() untuk mendapatkan semua nilai dalam kamus, dan. gunakan item() untuk mendapatkan semua kunci dalam pasangan Nilai, dsb.

Istilah berkaitan berorientasikan objek

Sebelum mempelajari pengaturcaraan berorientasikan objek secara sistematik, pemula harus memahami beberapa istilah tentang berorientasikan objek. Mengetahui istilah yang betul boleh membantu apabila membincangkan kod dengan orang lain, atau semasa cuba mencari penyelesaian kepada masalah yang kita hadapi.

Dalam berorientasikan objek, istilah biasa termasuk:

  • Kelas : Dapat difahami bahawa ia adalah templat yang melaluinya banyak contoh khusus boleh dicipta. Sebagai contoh, kura-kura yang ditulis sebelum ini hanya mewakili spesies penyu, yang melaluinya banyak contoh boleh dicipta untuk mewakili penyu dengan pelbagai ciri (proses ini juga dipanggil instantiasi kelas).

  • Objek: Kelas tidak boleh digunakan secara langsung, hanya kejadian (juga dipanggil objek) yang dicipta melalui kelas boleh digunakan. Ini sedikit sebanyak perkaitan lukisan kereta dengan kereta Lukisan itu sendiri (kelas) tidak boleh digunakan oleh orang, hanya kereta (objek) yang dicipta melalui lukisan itu boleh digunakan.

  • Atribut: Semua pembolehubah dalam kelas dipanggil atribut. Contohnya, dalam kelas kura-kura, bodyColor, footNum, weight dan hasShell adalah semua sifat yang dimiliki oleh kelas ini.

  • Kaedah : Semua fungsi dalam kelas biasanya dipanggil kaedah. Walau bagaimanapun, tidak seperti fungsi, kaedah kelas mesti mengandungi sekurang-kurangnya satu parameter diri (lebih lanjut mengenai ini kemudian). Contohnya, dalam kelas kura-kura, crawl(), eat(), sleep(), dan protect() adalah semua kaedah yang dimiliki oleh kaedah Kelas ini tidak boleh digunakan secara bersendirian dan hanya boleh digunakan bersama-sama dengan objek kelas.

Ciri berorientasikan objek Python:

Kelas dan objek ialah ciri penting Python, berbanding objek lain -ciri berorientasikan Bahasa, Python memudahkan untuk mencipta kelas dan objek. Pada masa yang sama, Python juga menyokong tiga ciri utama berorientasikan objek: enkapsulasi, pewarisan dan polimorfisme.

Encapsulation

Istilah objek (Objek) dalam pengaturcaraan berorientasikan objek pada asasnya boleh dianggap sebagai data (sifat) dan satu siri data yang boleh mengakses dan mengendalikannya data. Dalam erti kata tradisional, "program =
struktur data + algoritma" dirangkumkan, "tertutup" dan dipermudahkan kepada "program = objek + mesej". Objek ialah contoh kelas, dan abstraksi kelas perlu dirangkumkan. Enkapsulasi membolehkan pemanggil menggunakan objek secara langsung tanpa mengambil berat tentang bagaimana objek itu dibina.

Warisan

  • Warisan kelas:

    Perasaan warisan langsung ialah ia merupakan tingkah laku menggunakan semula kod . Warisan boleh difahami sebagai mewujudkan objek kelas khas berdasarkan kelas biasa Subkelas mempunyai hubungan IS-A dengan kelas induk yang diwarisinya.

  • Pewarisan berbilang:

    Tidak seperti C#, Python menyokong warisan berbilang kelas (C# boleh mewarisi daripada berbilang Antara Muka, tetapi paling banyak satu kelas). Mekanisme pewarisan berbilang kadangkala berguna, tetapi ia boleh merumitkan perkara dengan mudah.

Polymorphism

Polymorphism bermaksud bahawa operasi yang sama boleh digunakan pada objek yang berbeza, tetapi ia mungkin muncul dalam pelbagai bentuk hasil. Dalam Python, polimorfisme digunakan apabila anda tidak tahu jenis objek, tetapi anda memerlukan objek untuk melakukan sesuatu. Kaedah adalah polimorfik dan begitu juga pengendali.

[Cadangan berkaitan: Tutorial video Python3]

Atas ialah kandungan terperinci Adakah Python berorientasikan objek atau berorientasikan proses?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn