Inhaltsverzeechnes[Verstoppen][Show]
Ënnert Entwéckler huet objektorientéiert Programméierung e wesentleche Follower ugezunn. Populär Computersprooch Python hält sech och un den objektorientéierte Paradigma.
Et handelt mat der Definitioun vun Objeten a Klassen am Python, déi d'Basis fir OOPs Prinzipien bilden. An dësem Tutorial iwwer "objektorientéiert Programméiere am Python", léiert Dir wéi Dir Python Klassen deklaréiert, Objete vun hinnen erstellt an déi véier OOPs Techniken benotzt.
Also, éischt Saach éischt.
Wat ass objektorientéiert Programméierung?
Den Haaptfokus vun objektorientéierter Programméierung (OOP) ass d'Schafung vun "Objeten". Eng Sammlung vu verbonne Variabelen a Funktiounen mécht en Objet aus.
Dës Variablen ginn dacks als Attributer vum Objet bezeechent, a seng Verhalen ginn dacks als seng Funktiounen bezeechent. Dës Elementer bidden der Applikatioun eng méi effektiv a verständlech Struktur. En Auto ass e Beispill vun engem Artikel.
Wann den Auto en Artikel wier, géif seng Attributer Saache enthalen wéi seng Faarf, Modell, Präis, Mark, etc. Zousätzlech, géif et beschleunegen, lues a lues änneren.
Eng aner Illustratioun: Wa mir un en Hond als Element denken, da kënnen e puer vu senge Charakteristiken Faarf, Rass, Numm, Gewiicht, asw.
Well et real Welt Konzepter wéi Objeten, Verstoppen, Ierfschaft, etc. an d'Programméierung integréiert, ass objektorientéiert Programméierung gutt bekannt. Well et sou ähnlech wéi real-Welt Ëmstänn ass, gëtt d'Visualiséierung méi einfach gemaach.
Objektorientéiert Programméierungskonzepter
Klassen & Objekter am Python
Wéi all aner objektorientéiert Sproochen, erlaabt Python Iech Klassen ze designen fir Objekter ze generéieren. Déi populärsten Datetypen am Python, dorënner Strings, Lëschten, Dictionnairen an aner Objeten, sinn agebaute Klassen.
Eng Klass ass eng Grupp vu verlinkte Methoden an Instanzvariablen déi eng gewëssen Aart vun Objet definéieren. Eng Klass kann als Modell oder Schabloun fir en Objet gesi ginn. D'Variabelen déi eng Klass ausmaachen sinn als Attributer bekannt.
En Objet ass e Member vun enger Klass déi e definéierte Set vun Attributer huet. Wéinst deem kann all Zuel vun Objete mat der selwechter Klass erstallt ginn.
Python Klassen ginn definéiert mat der Wuertklass, déi dann vum Klassennumm an engem Colon gefollegt gëtt. Eng Illustratioun vun enger Papagei Klass kéint sinn:
Hei erkläre mir déi eidel Klass Parrot mam Klass Schlësselwuert. Mir kreéieren Instanzen aus Klassen. Eng Instanz ass e bestëmmten Objet deen aus enger bestëmmter Klass gemaach gouf. 'Pass' gëtt dacks als Stand-in fir Code benotzt, deem seng Ëmsetzung mir fir de Moment verzichte kënnen. Mir kënnen de Python Code ausféieren ouni e Feeler z'erhéijen andeems Dir de Schlësselwuert "Pass" benotzt.
Eng Instantiatioun vun enger Klass resultéiert an engem Objet (Instanz). Nëmmen d'Beschreiwung vum Objet gëtt definéiert wann eng Klass erstallt gëtt. Als Resultat gëtt keng Späichere oder RAM zougewisen.
E Beispill vun engem Papagei Klass Objet ass:
Obj ass e Parrot-Klass Objet an dësem Fall.
Loosst eis soen datt mir Spezifizitéiten iwwer Papageien kennen. Mir wäerten elo weisen wéi d'Papageie Klass a seng Objeten erstellen.
Spezial Method (__init__)
Eng Method genannt init definéiert d'Attributer déi all Parrot Objet muss hunn (). Wann en neie Parrot-Objet geformt gëtt, erstellt d'Funktioun __init__ den initialen Zoustand vum Objet andeems d'Wäerter déi mir an den Eegeschafte vum Objet liwweren.
Also, all nei Instanz vun der Klass gëtt initialiséiert andeems Dir __init__ () benotzt. Obwuel __init__ () kann all Zuel vun Parameteren akzeptéieren, Self ass ëmmer den éischte Parameter.
Eng Referenz op déi aktiv Klass Instanz ass am Self-Argument abegraff. De Selbstparameter, deen d'Adress vum aktuellen Objet vun enger Klass verlinkt an eis Zougang zu sengen (d'Objet) Variabelen Daten gëtt, bedeit dat.
Beispill 1
Mir hunn eng Klass mam Numm Parrot am uewe genannte Code etabléiert. Als nächst ginn d'Eegeschafte definéiert. D'Charakteristike vun enger Saach sinn seng Eegeschaften. D'Klass __init__ Funktioun ass wou dës Charakteristiken uginn.
Wann en Objet geformt gëtt, ass d'Initialiséierungsmethod déi, déi am Ufank genannt gëtt. Da ginn Instanzen vun der Parrot Klass erstallt. Blaze a Wonda an dësem Fall sinn Referenzen (Wäerter) op eis nei Objeten. __class .species erlaabt eis Zougang zu der Klass Attribut.
All Instanz vun enger Klass huet déiselwecht Charakteristiken. D'Instanzcharakteristike kënnen och zougänglech sinn mat blaze.name a blaze.age. All Instanzen vun enger Klass hunn awer eenzegaarteg Instanz Attributer.
Beispill 2
Methoden
Funktiounen, déi am Kierper vun enger Klass definéiert sinn, ginn Methoden genannt. Si gi beschäftegt fir ze spezifizéieren wéi en Element sech wäert behuelen.
Zwou Methoden, sangen () an danzen, sinn an der genannter Applikatioun definéiert (). Well se op en Instanzobjekt opgeruff ginn, sou wéi Flam, ginn dës Instanzmethoden bezeechent.
Fundamenter vum OOPS Konzept
Déi véier Kär Iddie vun objektorientéierter Programméierung sinn:
- Ierfschaft
- Encapsulatioun
- Polymorphismus
- Abstraktioun
Ierfschaft
D'Leit soen dacks Neigebueren datt si Gesiichtseigenschaften hunn, déi déi vun hiren Elteren ähnelen oder datt se besonnesch Charaktere vun hiren Elteren ierflecher hunn.
Et ass méiglech datt Dir och observéiert hutt datt Dir e puer Charakteristiken mat Ären Elteren deelt. D'real-Welt Situatioun ass och zimlech ähnlech wéi Ierfschaft.
Wéi och ëmmer, an dësem Fall ginn d'Charakteristiken vun den "Eltereklassen" un d"Kandklassen iwwerginn. Dës Aspekter ginn an dësem Kontext als "Eegeschafte" a "Methoden" bezeechent.
Eng Klass kann seng Methoden an Attributer vun enger anerer Klass ofleeden andeems Dir d'Technik benotzt, bekannt als Ierfschaft. Ierfschaft ass de Prozess vun enger Kannerklass déi d'Eegeschafte vun enger Elterenklass kritt.
Beispill:
D'Elterenklass Mënsch gëtt vun der Kannerklass Boy am Beispill hei uewen geierft. Well Boy ierft vum Mënsch, kënne mir op all seng Methoden an Attributer Zougang wa mir eng Instanz vun der Boy Klass erstellen.
An der Boy Klass ass och eng Method genannt SchoolName definéiert ginn. Den Elterenklassobjekt ass net fäeg op d'Method SchoolName ze kommen. D'SchoulName Method kann awer genannt ginn andeems Dir e Kand Klass Objet (Boy) erstellt.
Encapsulatioun
All Variabel am Programm globalen Zougang ze ginn ass net eng schlau Beweegung wann Dir mat Klassen schafft a sensibel Donnéeën behandelt.
Ouni de Programm kompletten Zougang zu enger vun dëse Variabelen ze ginn, gëtt d'Verkapselung e Mechanismus fir eis déi néideg Variabelen ze kréien.
Methoden, déi explizit fir den Zweck definéiert sinn, kënne benotzt ginn fir Daten aus Variabelen ze aktualiséieren, z'änneren oder ze läschen. Dës Method fir ze programméieren huet d'Virdeeler vun enger verstäerkter Sécherheet a Kontroll iwwer d'Dateinput.
Kuckt wéi séier Variabelen zougänglech sinn an der Demonstratioun hei ënnen:
Polymorphismus
Loosst eis soen datt Dir Ären Telefon benotzt fir duerch d' Instagram fiddert. Wann Dir den Drang kritt hutt fir e puer Musek ze lauschteren, hutt Dir Zougang zu Spotify an ugefaang Äre Liiblingslidd ze spillen.
No enger Zäit krut Dir en Uruff, sou datt Dir gestoppt hutt wat Dir am Hannergrond gemaach hutt fir et ze beäntweren. Äre Frënd huet ugeruff an gefrot datt Dir hinnen eng Telefonsnummer vun enger bestëmmter Persoun schreift.
Also hutt Dir him d'Telefonsnummer per SMS geschéckt a mat Ären Aufgaben weidergefouert. Hutt Dir eppes opgeholl? Mat just engem Apparat - Ären Handy - kënnt Dir duerch Feeds surfen, Musek lauschteren, Telefonsgespréicher huelen a maachen a Messagen.
Dofir ass de Polymorphismus mat deem vergläichbar. Poly heescht vill, a Morph bezeechent verschidde Formen. Dofir bezitt de Polymorphismus als Ganzt op eppes mat verschiddene Formen.
Oder "eppes" dat, ofhängeg vun der Ëmstänn, verschidde Verhalen ka weisen. Am OOPS beschreift de Polymorphismus Funktiounen mat de selwechten Nimm awer ënnerscheede Verhalen. Alternativ, eng aner Funktioun Ënnerschrëft mat der selwechter Funktioun Numm (Parameteren un d'Funktioun weiderginn).
Beispill:
Hei kënne mir dat variabelt Déier benotze fir iwwer d'Objete vun der Zebra an der Kanéngchen ze iteréieren, andeems se hir jeweileg Instanzmethoden benotzen. Als Resultat gëtt d'Verhalen (Faarf () & ësst ()) vu béiden Zebra an der Kanéngchen hei duerch eng eenzeg Variabel representéiert déi Déier genannt gëtt. Et hält also un de Polymorphismusregelen.
Abstraktioun
Dir benotzt héchstwahrscheinlech e Laptop, Telefon oder Tablet fir dësen Inhalt ze liesen. Wann Dir et liest, maacht Dir och viraussiichtlech Noten, ënnersträicht Schlësselpassagen, a späichert vläicht e puer Informatioun an Äre perséinleche Fichier.
Alles wat Dir gesitt wann Dir dëst liest ass e "Écran" mat den Donnéeën déi Iech ugewise ginn. Dir gesitt just d'Tastatur vun der Tastatur wéi Dir tippt, also musst Dir Iech keng Suergen iwwer intern Subtilitéite maache wéi wéi e Schlëssel dréckt kann dat Wuert um Bildschierm erscheinen.
Alternativ, wéi e Knäppchen op Ärem Écran dréckt kann en neien Tab starten.
Dofir, wat mir an dëser Situatioun observéiere kënnen ass abstrakt. Mir kënnen nëmmen d'Resultat gesinn, wat et schaaft an net déi bannenzeg Intricacies (déi eis tatsächlech wichteg sinn).
Ähnlech wéi dëst, enthält d'Abstraktioun nëmmen d'Funktiounen déi alles huet wärend all Implementatiounen oder intern Detailer verstoppt.
D'Haaptzil vun der Abstraktioun ass d'Hannergrondinformatioun an all extern Datenimplementatioun ze verstoppen, sou datt d'Leit nëmmen gesinn wat se musse gesinn. Et hëlleft beim Gestioun vun der Komplexitéit vum Code.
Beispill:
Eng Gefier-verbonne abstrakt Klass ass hei präsent. Well et vun der abstrakter Klass ABC ierft, ass et abstrakt. Well abstrakt Methoden net definéiert sinn oder eidel bleiwen, huet d'Klass Gefier eng abstrakt Method genannt Nee vu Rieder déi eng Definitioun feelt.
Si antizipéieren d'Klassen déi d'abstrakt Klassen ierwen fir d'Implementatioun vun der Method ze ginn.
Virdeeler vun OOPS Konzepter
- Duerch Encapsuléierung ginn héich Sécherheet an Dateschutz erreecht.
- Flexibilitéit fir vill polymorphesch Versioune vun der selwechter Klass ze hunn.
- Den héije Niveau vun der Codekomplexitéit gouf duerch Abstraktioun reduzéiert.
- Amplaz duerch Honnerte vu Codelinnen ze siften fir en eenzege Problem ze lokaliséieren, mécht d'Modularitéit vun der Programméierung Debugging einfach.
- Code Wiederverbrauch gëtt verursaacht duerch d'Ierfschaft vun enger Kannerklass vun Elterenklasseigenschaften.
- Effektiv Problemléisung ass méiglech well mir Klassen erstellen déi déi néideg Aktiounen fir all Mini-Problem maachen. De folgende Problem kann nach méi séier geléist ginn, well mir dës Klassen nei benotze kënnen.
Konklusioun
Als Conclusioun hu mir iwwer OOPS Iddien am Python geléiert, dat wäermst Programméierungsparadigma elo.
Nodeems Dir dëst gelies hutt, musst Dir gemierkt hunn datt den OOPS Paradigma ganz mat der Iddi vu Klassen an Objeten handelt. an OOPS Konzepter wéi Enkapsulatioun, Polymorphismus, Ierfschaft an Abstraktioun.
Hannerlooss eng Äntwert