Talaan ng nilalaman[Tago][Ipakita]
Sa mga nag-develop, ang object-oriented na programming ay nakaakit ng malaking sumusunod. Ang popular na wika ng computer na Python ay sumusunod din sa object-oriented na paradigm.
Nakikitungo ito sa pagtukoy ng mga bagay at klase sa Python, na bumubuo ng batayan para sa mga prinsipyo ng OOP. Sa tutorial na ito sa "object-oriented programming sa Python," matututunan mo kung paano magdeklara ng mga klase sa Python, lumikha ng mga bagay mula sa kanila, at gamitin ang apat na diskarte sa OOP.
Kaya, unang-una.
Ano ang Object-Oriented Programming?
Ang pangunahing pokus ng object-oriented programming (OOP) ay ang paglikha ng "mga bagay". Isang koleksyon ng mga magkakaugnay na variable at function ang bumubuo sa isang object.
Ang mga variable na ito ay madalas na tinutukoy bilang mga katangian ng object, at ang mga pag-uugali nito ay madalas na tinutukoy bilang mga function nito. Ang mga item na ito ay nagbibigay sa application ng isang mas epektibo at naiintindihan na istraktura. Ang isang sasakyan ay isang halimbawa ng isang bagay.
Kung ang sasakyan ay isang item, ang mga katangian nito ay kinabibilangan ng mga bagay tulad ng kulay, modelo, presyo, brand, atbp. Bukod pa rito, ito ay magpapabilis, magpapabagal, at magpapalit ng mga gear.
Isa pang paglalarawan: Kung iisipin natin ang isang aso bilang isang bagay, ang ilan sa mga katangian nito ay maaaring kulay, lahi, pangalan, timbang, atbp. At siya ay gumagalaw, tumatahol, naglalaro, atbp.
Dahil isinasama nito ang mga real-world na konsepto tulad ng mga bagay, pagtatago, pamana, atbp. sa programming, kilala ang object-oriented na programming. Dahil napakahawig nito sa mga pangyayari sa totoong mundo, ginagawang mas simple ang visualization.
Object-Oriented Programming Concepts
Mga Klase at Bagay sa Python
Tulad ng lahat ng iba pang mga object-oriented na wika, binibigyang-daan ka ng Python na magdisenyo ng mga klase upang makabuo ng mga bagay. Ang pinakasikat na uri ng data sa Python, kabilang ang mga string, listahan, diksyunaryo, at iba pang mga bagay, ay mga built-in na klase.
Ang klase ay isang pangkat ng mga naka-link na pamamaraan at mga variable ng instance na tumutukoy sa isang partikular na uri ng bagay. Ang isang klase ay maaaring makita bilang modelo o template para sa isang bagay. Ang mga variable na bumubuo sa isang klase ay kilala bilang mga katangian.
Ang isang bagay ay isang miyembro ng isang klase na may tinukoy na hanay ng mga katangian. Dahil dito, maaaring malikha ang anumang bilang ng mga bagay gamit ang parehong klase.
Ang mga klase ng Python ay tinukoy gamit ang klase ng salita, na pagkatapos ay sinusundan ng pangalan ng klase at isang tutuldok. Ang isang paglalarawan ng isang klase ng loro ay maaaring:
Dito, ipinapahayag namin ang walang laman na klase ng Parrot gamit ang keyword ng klase. Lumilikha kami ng mga pagkakataon mula sa mga klase. Ang isang halimbawa ay isang partikular na bagay na ginawa mula sa isang partikular na klase. Ang 'pass' ay madalas na ginagamit bilang isang stand-in para sa code na ang pagpapatupad ay maaari naming talikuran sa sandaling ito. Maaari naming isagawa ang Python code nang hindi nagtataas ng error sa pamamagitan ng paggamit ng "pass" na keyword.
Ang instantiation ng isang klase ay nagreresulta sa isang bagay (halimbawa). Tanging ang paglalarawan ng bagay ay tinukoy kapag ang isang klase ay nilikha. Bilang resulta, walang imbakan o RAM na inilalaan.
Ang isang halimbawa ng object ng parrot class ay:
Ang Obj ay isang Parrot-class object sa pagkakataong ito.
Sabihin nating alam natin ang mga detalye tungkol sa mga loro. Ipapakita namin ngayon kung paano lumikha ng klase ng parrot at mga bagay nito.
Espesyal na Paraan ( __init__ )
Ang isang pamamaraan na tinatawag na init ay tumutukoy sa mga katangian na dapat na taglay ng bawat Parrot object (). Kapag nabuo ang isang bagong Parrot object, ang function na __init__ ay lumilikha ng paunang estado ng object sa pamamagitan ng pagtatalaga ng mga value na ibinibigay namin sa loob ng mga katangian ng object.
Kaya, ang bawat bagong instance ng klase ay sinisimulan sa pamamagitan ng paggamit ng __init__(). Bagama't ang __init__() ay maaaring tumanggap ng anumang bilang ng mga parameter, ang sarili ay palaging ang unang parameter.
Ang isang reference sa aktibong class instance ay kasama sa self-argument. Ang self parameter, na nagli-link sa address ng kasalukuyang object ng isang klase at nagbibigay sa amin ng access sa data nito (ang object) na mga variable, ay nagpapahiwatig na.
Halimbawa 1
Nagtatag kami ng klase na tinatawag na Parrot sa code sa itaas. Susunod, tinukoy ang mga katangian. Ang mga katangian ng isang bagay ay ang mga katangian nito. Ang __init__ function ng klase ay kung saan tinukoy ang mga katangiang ito.
Kapag nabuo ang isang bagay, ang paraan ng initializer ay ang tinatawag sa simula. Pagkatapos, ang mga pagkakataon ng klase ng Parrot ay nilikha. Ang Blaze at Wonda sa pagkakataong ito ay mga sanggunian (mga halaga) sa aming mga bagong bagay. __class .species ay nagbibigay-daan sa amin na ma-access ang class attribute.
Ang bawat instance ng isang klase ay may parehong mga katangian. Ang mga katangian ng instance ay maaari ding ma-access gamit ang blaze.name at blaze.age. Ang lahat ng mga instance ng isang klase ay may mga natatanging katangian ng instance, bagaman.
Halimbawa 2
Pamamaraan
Ang mga function na tinukoy sa loob ng katawan ng isang klase ay tinatawag na mga pamamaraan. Ginagamit ang mga ito upang tukuyin kung paano kikilos ang isang item.
Dalawang pamamaraan, sing() at sayaw, ay tinukoy sa nabanggit na aplikasyon (). Dahil ginagamit ang mga ito sa isang instance object, gaya ng flame, tinutukoy ang mga ito bilang mga instance method.
Mga pundasyon ng konsepto ng OOPS
Ang apat na pangunahing ideya ng object-oriented programming ay:
- Pamana
- Encapsulation
- Polymorphism
- Abstraction
Pamana
Ang mga tao ay madalas na nagsasabi sa mga bagong silang na sila ay may mga katangian ng mukha na katulad ng sa kanilang mga magulang o na sila ay nagmana ng mga partikular na katangian mula sa kanilang mga magulang.
Posibleng naobserbahan mo rin na may ilang katangian ka sa iyong mga magulang. Ang real-world na sitwasyon ay medyo katulad din ng mana.
Gayunpaman, sa kasong ito, ang mga katangian ng "mga klase ng magulang" ay ipinasa sa "mga klase ng bata." Ang mga aspetong ito ay tinutukoy bilang "mga katangian" at "mga pamamaraan" sa kontekstong ito.
Maaaring makuha ng isang klase ang mga pamamaraan at katangian nito mula sa ibang klase sa pamamagitan ng paggamit ng teknik na kilala bilang mana. Ang inheritance ay ang proseso ng pagtanggap ng child class ng mga property ng parent class.
halimbawa:
Ang parent class na Human ay minana ng child class na Boy sa halimbawa sa itaas. Dahil nagmana si Boy sa Human, maa-access natin ang lahat ng pamamaraan at katangian nito kapag gumawa tayo ng instance ng Boy class.
Sa klase ng Boy, isang paraan na tinatawag na schoolName ay tinukoy din. Hindi ma-access ng object ng parent class ang method na schoolName. Gayunpaman, ang paraan ng schoolName ay maaaring tawagin sa pamamagitan ng paglikha ng object ng klase ng bata (Boy).
Encapsulation
Ang pagbibigay sa bawat variable sa programa ng global na access ay hindi isang matalinong hakbang kapag nagtatrabaho sa mga klase at humahawak ng sensitibong data.
Nang hindi binibigyan ng kumpletong access ang programa sa alinman sa mga variable na iyon, nagbibigay ang encapsulation ng mekanismo para makuha natin ang mga kinakailangang variable.
Ang mga pamamaraan na tahasang tinukoy para sa layunin ay maaaring gamitin upang i-update, i-edit, o tanggalin ang data mula sa mga variable. Ang pamamaraang ito ng programming ay may mga pakinabang ng pinahusay na seguridad at kontrol sa input ng data.
Tingnan kung gaano kabilis ma-access ang mga variable sa demonstration sa ibaba:
Polymorphism
Sabihin nating ginagamit mo ang iyong telepono upang i-browse ang Instagram feed. Nang magkaroon ka ng gana na makinig sa ilang musika, na-access mo ang Spotify at nagsimulang magpatugtog ng iyong paboritong kanta.
Pagkaraan ng ilang oras, nakatanggap ka ng tawag, kaya na-pause mo ang anumang ginagawa mo sa background para sagutin ito. Tumawag ang iyong kaibigan at hiniling na i-text mo sa kanila ang numero ng telepono ng isang partikular na tao.
Kaya ipinadala mo sa kanya ang numero ng telepono sa pamamagitan ng SMS at ipinagpatuloy ang iyong mga gawain. Nakakuha ka na ba ng kahit ano? Sa isang device lang—iyong mobile phone—maaari kang mag-surf sa mga feed, makinig ng musika, tumawag at tumawag sa telepono, at mag-message.
Samakatuwid, ang polymorphism ay maihahambing doon. Ang poly ay nangangahulugang marami, at ang morph ay tumutukoy sa iba't ibang anyo. Samakatuwid, ang polymorphism sa kabuuan ay tumutukoy sa isang bagay na may iba't ibang anyo.
O "isang bagay" na, depende sa pangyayari, ay maaaring magpakita ng iba't ibang pag-uugali. Sa OOPS, inilalarawan ng polymorphism ang mga function na may parehong mga pangalan ngunit naiibang pag-uugali. Bilang kahalili, ibang signature ng function na may parehong pangalan ng function (mga parameter na ipinasa sa function).
halimbawa:
Dito, maaari nating gamitin ang variable na hayop upang umulit sa mga bagay ng Zebra at ng Kuneho, gamit ang kani-kanilang mga pamamaraan ng halimbawa. Bilang resulta, ang pag-uugali (kulay() at kumakain()) ng parehong Zebra at Kuneho ay kinakatawan dito ng isang variable na tinatawag na hayop. Samakatuwid ito ay sumusunod sa mga patakaran ng polymorphism.
Abstraction
Malamang na gumagamit ka ng laptop, telepono, o tablet upang basahin ang nilalamang ito. Habang binabasa ito, malamang na kumukuha ka rin ng mga tala, sinalungguhitan ang mga pangunahing sipi, at marahil ay nag-iimbak ng ilang impormasyon sa iyong mga personal na file.
Ang makikita mo lang kapag binasa mo ito ay isang "screen" na may data na ipinapakita sa iyo. Makikita mo lang ang mga key ng keyboard habang nagta-type ka, kaya hindi mo kailangang mag-alala tungkol sa mga panloob na subtlety tulad ng kung paano maaaring magdulot ng paglabas ng salitang iyon sa screen ang pagpindot sa isang key.
Bilang kahalili, kung paano makakapaglunsad ng bagong tab ang pagpindot sa isang button sa iyong screen.
Samakatuwid, ang anumang maaari nating obserbahan sa sitwasyong ito ay abstract. Makikita lang natin ang kinalabasan na nililikha nito at hindi ang mga intricacies sa loob (na talagang mahalaga sa atin).
Katulad nito, ang abstraction ay nagpapakita lamang ng mga function na taglay ng lahat habang itinatago ang anumang mga pagpapatupad o panloob na mga detalye.
Ang pangunahing layunin ng abstraction ay itago ang background na impormasyon at anumang extraneous na pagpapatupad ng data upang makita lamang ng mga tao ang kailangan nilang makita. Nakakatulong ito sa pamamahala sa pagiging kumplikado ng code.
halimbawa:
Naririto ang abstract class na nauugnay sa sasakyan. Dahil nagmana ito mula sa abstract class na ABC, ito ay abstract. Dahil ang mga abstract na pamamaraan ay hindi tinukoy o nananatiling walang laman, ang klase ng Sasakyan ay may abstract na pamamaraan na tinatawag na no of wheels na walang kahulugan.
Inaasahan nila ang mga klase na nagmamana ng mga abstract na klase upang ibigay ang pagpapatupad ng pamamaraan.
Mga pakinabang ng mga konsepto ng OOPS
- Sa pamamagitan ng pag-encapsulate, nakakamit ang mataas na seguridad at privacy ng data.
- Flexibility sa pagkakaroon ng maraming polymorphic na bersyon ng parehong klase.
- Ang mataas na antas ng pagiging kumplikado ng code ay nabawasan ng abstraction.
- Sa halip na suriing mabuti ang daan-daang linya ng code upang mahanap ang isang problema, ang modularity ng programming ay ginagawang simple ang pag-debug.
- Ang muling paggamit ng code ay sanhi ng pagmamana ng isang child class ng mga property ng parent class.
- Posible ang epektibong paglutas ng problema dahil gumagawa kami ng mga klase na gumagawa ng mga kinakailangang aksyon para sa bawat maliit na problema. Mas mabilis na malulutas ang sumusunod na problema dahil magagamit natin muli ang mga klaseng iyon.
Konklusyon
Sa konklusyon, natutunan namin ang tungkol sa mga ideya ng OOPS sa Python, ang pinakamainit na paradigm sa programming ngayon.
Matapos basahin ito, malamang na natanto mo na ang paradigm ng OOPS ay ganap na tumatalakay sa ideya ng mga klase at bagay. at mga konsepto ng OOPS tulad ng encapsulation, polymorphism, inheritance, at abstraction.
Mag-iwan ng Sagot