Een beginnershandleiding bij Python Object-Oriented Programming

Een beginnershandleiding bij Python Object-Oriented Programming / Programming

Python wordt gebruikt in alles van de Raspberry Pi tot machine learning. Als je echter aan een groot project wilt werken, moet je weten hoe Python met objectgeoriënteerd programmeren (OOP) werkt. Dit artikel behandelt de basisprincipes die u moet weten.

Als je niet echt programmeert, kijk dan eens naar de beste Monty Python-sketches in plaats van 8 van de Flying Circus Sketches van Best Monty Python 8 van de beste circusschetsen van Monty Python [Stuff to Watch] Very een paar andere komedieteams hebben net zoveel nieuw terrein gebroken als Monty Python deed toen ze voor het eerst op de BBC uitkwamen in 1969. Niet alleen was de humor fris, goed afgeleverd en heel, heel ... Lees Meer? Ze hebben tenslotte de taal geïnspireerd!

Wacht, Python is geen echte taal?

Laten we één ding duidelijk stellen: Python IS een echte programmeertaal, het is populair en het groeit snel. Gewoon omdat het leest als pseudocode en je kunt Minecraft op de Pi coderen met het Leer Python en Elektronica met Minecraft Pi Editie Leer Python en Elektronica met Minecraft Pi Editie Heb je altijd al willen leren programmeren maar wist je niet waar te beginnen? Leer hoe je Minecraft op de Raspberry Pi kunt bedienen met behulp van Python en enkele eenvoudige elektronica. Meer lezen, dat betekent niet dat u het als een mindere taal moet beschouwen.

OOP is de hoeksteen van de moderne softwareontwikkeling en Python is meer dan in staat om bij te blijven. Het kan een of twee dingen anders doen dan andere standaardtalen, maar laat dat je niet afschrikken.

Deze tutorial zal een basiskennis van Python aannemen, maar we zullen onderweg alle complexe dingen behandelen. Als je nieuw bent bij Python, waarom bekijk je deze trucs dan niet om een ​​nieuwe programmeertaal te leren 7 Nuttige trucs voor het beheersen van een nieuwe programmeertaal 7 Nuttige trucs voor het beheersen van een nieuwe programmeertaal Het is goed om overweldigd te zijn wanneer je leert programmeren. Je zult dingen waarschijnlijk zo snel vergeten als je ze leert. Deze tips kunnen u helpen om al die nieuwe informatie beter te bewaren. Meer lezen of een eenvoudig project zoals lezen en schrijven naar Google Spreadsheets met Python Leren lezen en schrijven naar Google Spreadsheets Met Python Leren lezen en schrijven naar Google Spreadsheets Met Python lijkt Python misschien vreemd en ongebruikelijk, maar het is eenvoudig om te leren en te gebruiken. In dit artikel laat ik je zien hoe je met Python naar Google Spreadsheets kunt lezen en schrijven. Lees verder ?

Python Vereisten en instellingen

Voordat je aan de slag gaat, wil je misschien je Python-ontwikkelomgeving instellen. We zullen Python 3.6.5 gebruiken, en terwijl je oudere versies kunt gebruiken, heb je minder problemen als je een vrij nieuwe versie gebruikt.

U wilt een virtuele omgeving creëren Leer hoe u de virtuele omgeving van Python gebruikt Leer hoe u de virtuele omgeving van Python gebruikt Of u nu een ervaren Python-ontwikkelaar bent of u bent nog maar net begonnen, het leren van het opzetten van een virtuele omgeving is essentieel voor elk Python-project. Lees meer als je er nog geen hebt, en installeer PIP voor Python Hoe installeer je PIP voor Python op Windows, Mac en Linux Hoe installeer je PIP voor Python op Windows, Mac en Linux Veel Python-ontwikkelaars vertrouwen op een tool genaamd PIP voor Python om alles veel eenvoudiger en sneller te maken. Hier is hoe u PIP installeert. Lees Meer als dat niet is geïnstalleerd (het komt echter met de meeste moderne installaties van Python). Zodra je die setup hebt, ben je klaar om te gaan. Laten we beginnen!

De basisprincipes van Python: klassen

EEN klasse is de basisbouwsteen van OOP. Een klas is als een plan of blauwdruk. Ze definiëren kenmerken van een object Wat is objectgeoriënteerd programmeren? The Basics Explained in Layman's Terms Wat is Object Oriented Programming? The Basics Explained in Layman's Terms De meeste moderne programmeertalen ondersteunen het "object-oriented programming" (OOP) paradigma. Maar wat is OOP precies en waarom is het zo nuttig? Lees verder . Als u bijvoorbeeld een autoklasse hebt, kan het zijn dat er vier wielen zijn, minstens één stoel en een motor.

Hier is hoe je een klasse maakt in Python:

class Vehicle: "" "Deze klasse definieert voertuigen." "" pass 

Eenvoudig toch? Er zijn hier een paar dingen aan de hand. Let op de opmerking aan de bovenkant van de klas. Dit is een speciale opmerking genaamd a docstring. Het moet een beetje uitleggen over je code. Door de drievoudige aanhalingstekens te gebruiken (“””), je vertelt Python dat dit een docstring is.

De voorbij lopen keyword vertelt Python tot niets. Het is een speciaal woord en je kunt het als een todo zien. Het zorgt ervoor dat uw code wordt uitgevoerd, maar doet niets.

Als u deze code uitvoert, ziet u dat er niets gebeurt. Je moet instantiëren jij klasse. Dit betekent in feite om een ​​object te gaan bouwen op basis van het plan dat in de klas is gedefinieerd. U kunt zoveel kopieën maken als u wilt, elk met verschillende eigenschappen. Hier is hoe je dat doet:

red_car = Voertuig ()

Als u dit opnieuw uitvoert, ziet u dat er niets gebeurt. De code werkt correct, maar je hebt het niet verteld om iets merkbaars te doen. De Voertuig klasse definieert blauwdrukken voor een voertuig en deze laatste regel maakt een voertuigobject en geeft het een naam rode auto.

Het is mogelijk om zoveel objecten te maken als je wilt:

red_car = Vehicle () green_car = Vehicle () blue_car = Vehicle ()

Laten we wat meer code toevoegen. Voeg een methode toe genaamd __in het__ naar de Voertuig klasse:

class Vehicle: "" "Deze klasse definieert voertuigen." "" def __init __ (self, color = "plain"): "" "Stel enkele aangepaste auto-eigenschappen in" "" print ('Nieuwe auto gemaakt!') self.color = kleur red_car = Vehicle () green_car = Vehicle () blue_car = Vehicle ()

Besteed hier speciale aandacht aan __in het__ methode. Het moet beginnen en eindigen met twee onderstrepingstekens. Dit is een speciale methode in Python. Het wordt automatisch aangeroepen wanneer u een nieuw object maakt. Als u deze code uitvoert, worden de woorden weergegeven “Nieuwe auto gemaakt!” drie keer.

Tenslotte, __in het__ neemt een aangepast argument genaamd kleur. Het gelijkteken en de tekenreeks die onmiddellijk volgt, vertellen Python om de kleur in te stellen “vlakte” indien niet opgegeven. U kunt uw instanties wijzigen om uw autokleur bij het maken in te stellen:

red_car = Voertuig (kleur = 'rood') green_car = Voertuig (kleur = 'groen') blue_car = Voertuig (kleur = 'blauw')

Als u de autokleur afdrukt, ziet u dat elke instantie een andere kleur heeft, hoewel alle drie zijn gemaakt volgens dezelfde specificatie (de klasse). Met Python hebt u toegang tot bijna elke variabele of elk object, in veel andere talen kunt u dit niet doen:

print (red_car.color) print (green_car.color) print (blue_car.color)

Dit werkt omdat je hebt toegewezen kleur naar self.color. Zelf is een ander speciaal trefwoord in Python en verwijst naar elk specifiek exemplaar van een klasse. Wanneer u uzelf gebruikt, kunt u unieke gegevens voor die instantie instellen of openen. De rode auto heeft bijvoorbeeld een rode kleur.

Wijzig uw __in het__ methode om de autoruis in een variabele op te slaan:

self.noise = 'Vroooom'

Om het autogeluid af te drukken, kunt u gewoon toegang krijgen tot de lawaai variabel, zoals je deed met kleur, maar dit is niet het beste idee. Wat als, wanneer u in een auto rijdt, u wilt dat een andere code tegelijkertijd wordt uitgevoerd, misschien een code die u nog niet hebt geschreven? Of wat als u de manier wilt wijzigen waarop een auto in de toekomst rijdt? Door een functie (ook bekend als a methode), kunt u strak regelen hoe dingen werken. Voeg dit toe onder jouw __in het__ methode:

def drive (self): print (self.noise)

Je kunt deze methode simpelweg noemen:

red_car.drive ()

Wanneer je de rijden methode, Python zal het geluid afdrukken. U kunt dit uitbreiden om alle soorten taken uit te voeren, maar laat het zoals het nu is.

Goed gedaan! Inmiddels zou je een stevige grip op de basis moeten hebben. Je zou in staat moeten zijn om je eigen klassen te creëren en te gebruiken, elk met hun eigen unieke vaardigheden en functies.

Hoe zit het met privévariabelen in Python?

Privé-objecten zijn heel gebruikelijk in de meeste andere talen. Het zijn gewoon variabelen of functies die niet buiten de klas kunnen worden gebruikt. Dit kunnen codes zijn waarvoor speciale voorwaarden zijn vereist waaraan voorafgaand aan het gebruik moet worden voldaan, of die eenvoudigweg alleen voor intern gebruik zijn ontworpen. Wat de reden ook is, instanties hebben geen toegang tot privé-leden ... tenzij je codeert in Python.

Python heeft geen privé leden. In plaats daarvan vertrouwt Python op een eersysteem: “We zijn allemaal instemmende volwassenen.” Python-programmeurs begrijpen dat je misschien wilt sleutelen aan de gevoelige interne onderdelen van een klas, en dat is goed, dus niets zou ooit echt ontoegankelijk moeten zijn.

Python heeft echter wel een geaccepteerde conventie voor het markeren van bepaalde variabelen “privaat” in de zin van “Deze variabele is voor intern gebruik en u hoeft deze waarschijnlijk niet aan te raken.” De conventie is om variabelenamen te prefixen met een onderstrepingsteken:

_some_secret_variable = 42

Dit fungeert als een waarschuwing voor andere programmeurs. Python zal niet voorkomen dat u hier toegang toe krijgt, maar het onderstrepingsteken geeft aan dat dit niet is ontworpen om op deze manier te worden gebruikt, en u moet op eigen risico verdergaan.

Het is soms de manier van Python om met verborgen spullen te sleutelen, maar je loopt het risico dat dingen niet goed werken.

Inheritance in Python begrijpen

Overerving is een andere manier om de code voor duplicatie en hergebruik te verminderen. Als we aan een ouder- en kindrelatie denken, kan de erfenis worden overgenomen kind om gemeenschappelijke code te delen met de ouder. Laten we een elektrische auto implementeren, die erft van de ouder.

Voeg deze code toe onder jouw Voertuig klasse:

klasse ElectricCar (Vehicle): "" "Elektrische voertuigklasse." "" def charge (zelf): print ('Zzz') electric_car = ElectricCar () electric_car.charge () electric_car.noise = 'Whoosh' electric_car.drive ()

Na de Elektrische auto is gedefinieerd, de Voertuig klasse wordt gespecificeerd binnen twee haakjes. Dit vertelt Python dat Elektrische auto is een kind van Voertuig. Dit geeft toegang tot alle gegevens en methoden die worden aangeboden in Voertuig.

De elektrische auto heeft zijn eigen speciale methoden. Het kan opladen (iets dat andere voertuigen niet kunnen doen). Door het rijgeluid van de auto te veranderen en vervolgens te rijden, kunt u zien dat de elektrische auto een ander geluid maakt en u de aandrijfmethode niet hoeft te definiëren. Dit komt omdat de schijf wordt overgenomen van de ouder.

Breid uw kennis van Python nog verder uit

Deze voorbeelden hebben aangetoond hoe gemakkelijk OOP in Python kan zijn. We hebben alleen de basisprincipes behandeld, maar als je die eenmaal hebt, is de rest eenvoudig.

Als je Python wilt blijven leren, of misschien deze OOP-vaardigheden in de praktijk wilt brengen, waarom zou je dan niet naar arrays en lijsten in Python kijken, of hoe je Python en JavaScript kunt laten communiceren??

Als dit allemaal is overgebleven, wil je meer weten, en vergeet dan niet om deze beste websites te bekijken om Python te leren De 5 beste websites om Python te leren programmeren De 5 beste websites om Python te leren programmeren Wil je Python-programmeren leren? Dit zijn de beste manieren om Python online te leren, waarvan vele volledig gratis zijn. Lees verder .

Ontdek meer over: Object-georiënteerd programmeren, programmeren, Python.