Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Bij het schrijven van lessen in Python kom je vaak de term tegen. 'self.'
Het is een cruciaal concept dat beginners moeten begrijpen als ze dieper ingaan op objectgeoriënteerde functies in de programmeertaal Python.
De self
parameter verwijst naar de huidige instantie van een klasse. U kunt het gebruiken om toegang te krijgen tot de attributen en methoden die bij die klasse horen.
In deze Python-zelfstudie onderzoeken we hoe de self
variabele een cruciale rol speelt in Python-klassen. We laten u ook zien hoe u code helder, modulair en herbruikbaar kunt houden door het gebruik van self
.
Inhoudsopgave
Zelf begrijpen in Python
Python is een objectgeoriënteerde programmeertaal (OOP) die sterk afhankelijk is van klassen en objecten. Dus voordat we in de self
parameter duiken, moeten we eerst begrijpen wat objectgeoriënteerd programmeren is.
Objectgeoriënteerd programmeren in Python
Krijtschrijven – OOP, objectgeoriënteerd programmeren large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="lazy" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Wat is zelf in Python." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" sizes="(max-width: 709px) 100vw, 709px">
Objectgeoriënteerd programmeren helpt programmeurs om real-world concepten en relaties te modelleren door het gebruik van klassen en objecten. Dit resulteert in code die meer gestructureerd, herbruikbaar en schaalbaar is.
Beschouw een klasse als een sjabloon voor het maken van objecten met vooraf gedefinieerde eigenschappen en methoden. Een object is ook een instantie van een klasse die zijn eigen waarden voor de attributen opslaat en toegang heeft tot klassefuncties.
Deze twee concepten zijn een belangrijke bouwsteen in veel Python- toepassingen. U kunt zowel klassen als objecten aan het werk zien in deze video over hoe u eenvoudig gegevens kunt maken met Python Faker Library.
De rol van Python Self
Self
is een verwijzing naar de instantie van de klasse in Python. Hiermee kunt u de attributen en methoden van een klasse binnen zijn eigen bereik openen en wijzigen.
Hier zijn een paar belangrijke punten over het gebruik van self
in Python:
Self
is geen gereserveerd trefwoord in de Python-syntaxis . U kunt andere namen gebruiken om klasse-instanties te identificeren, maar dit self
is de meest gebruikte en geaccepteerde conventie door Python-programmeurs.Self
wordt gebruikt als de eerste parameter in instantiemethoden om te verwijzen naar de huidige instantie van de klasse.self
om onderscheid te maken tussen instantiekenmerken en lokale variabelen, waardoor uw code leesbaarder wordt en minder fouten bevat.self
in de __init__()
constructor en alle andere daaropvolgende functieconstructors in uw klasse. Als u dit niet doet, zal uw programma een typeerror
. class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given
Opmerking: u kunt de parameter in functies omzeilen self
door de statische methodefunctie te gebruiken die Python 3 biedt. We zullen daar in een later gedeelte dieper op ingaan.
Werken met jezelf
Leren hoe te gebruiken self
is erg belangrijk voor het bouwen van lessen in Python. In deze sectie leert u hoe u self
in verschillende scenario's kunt gebruiken bij het werken met klassen en objecten.
Objecten initialiseren met '__init__()'
Bij het maken van een nieuwe instantie van een klasse __init__()
wordt de methode aangeroepen om de attributen van het object te initialiseren. De __init__()
methode is de klassenconstructor en neemt de self
parameter als eerste argument.
De self
parameter wordt binnen deze methode gebruikt om de instantieattributen te associëren met de gegeven argumenten.
Hier is een voorbeeld:
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)
In dit voorbeeld neemt de methode , , en als parameters tijdens de initialisatie van het object. De parameter verwijst naar de klasse-instantie, waardoor u de kenmerken en kunt instellen voor het specifieke object dat wordt gemaakt. init
self
name
age
self
name
age
Zelf gebruiken in methoden
Wanneer u instantiemethoden in een klasse definieert, moet u deze self
als eerste parameter opnemen. Hierdoor hebt u toegang tot de instantiekenmerken en andere methoden binnen de klasse.
Laten we het vorige voorbeeld uitbreiden:
class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()
In dit voorbeeld introduce()
bevat de methode self
als eerste parameter. Hiermee krijgt u toegang tot de naam en leeftijdskenmerken van het object en kunt u een gepersonaliseerde introductie maken.
Wanneer u de methode in uw code aanroept, hoeft u de
self
parameter niet expliciet door te geven. Python regelt het automatisch.
Door deze richtlijnen te volgen en het doel van Python te begrijpen self
, kunnen beginners effectief werken met klassen en objecten. Hierdoor kunnen ze goed gestructureerde code maken die gemakkelijk te lezen en te onderhouden is.
Veelvoorkomende gevallen voor zelfgebruik
Er zijn veel manieren waarop u het trefwoord in uw Python-code kunt gebruiken. Door deze use-cases te begrijpen, kunt u deze effectief gebruiken in uw programma's. self
self
Laten we er een paar bekijken:
Toegang tot klassekenmerken
Een primair gebruik van self
is om toegang te krijgen tot instantieattributen binnen een klasse. Instantiekenmerken zijn specifiek voor een object dat is gemaakt op basis van de klasse en slaan de gegevens van het object op.
Met behulp van self
kunt u deze attributen manipuleren of openen binnen klassenmethoden. Laten we naar een voorbeeld kijken:
class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)
In dit voorbeeld hadden we self
toegang tot het naamattribuut van een Dog-object binnen de display_name
methode.
Klassenmethoden aanroepen
Een ander veelvoorkomend gebruik self
is het aanroepen van andere klassenmethoden vanuit een instantiemethode. Hierdoor kunt u code hergebruiken, de complexiteit verminderen en de leesbaarheid verbeteren.
Het is essentieel om te gebruiken self
bij het verwijzen naar andere methoden, omdat het ervoor zorgt dat de juiste methode wordt aangeroepen voor de specifieke instantie. Beschouw het volgende voorbeeld:
class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)
In het bovenstaande voorbeeld gebruiken we self
om de show_species
methode vanuit de show_info
methode aan te roepen. Dit stelt ons in staat om de soort en kleur van de vogel in één keer weer te geven.
Vergeet ten slotte niet te gebruiken self
bij het openen van instantiekenmerken en het aanroepen van klassemethoden. Zodra u deze use-cases begrijpt, kunt u efficiëntere en georganiseerde Python-code schrijven.
Beste zelfpraktijken
Bij het werken met self,
zijn er enkele conventies die u moet volgen om problemen en bugs in uw code te voorkomen. Hier zijn er een aantal.
Waar te gebruiken Zelf
Gebruik bij het definiëren van instantiemethoden altijd de self
parameter als eerste parameter. Hierdoor kunt u de instantiekenmerken van het object openen en wijzigen en andere instantiemethoden binnen de klasse aanroepen.
Het is belangrijk om te gebruiken self
bij het werken met objectinstanties in Python. Het gebruik ervan zorgt voor consistent gedrag en zorgt voor een juiste inkapseling van objecten.
Beschouw bijvoorbeeld de volgende klasse:
class MyClass: def __init__(self, my_var): self.my_var = my_var
Hier wordt de parameter self gebruikt in de __init__
methode om het my_var
attribuut van de objectinstantie te initialiseren. Op deze manier wordt het een instantiespecifiek kenmerk. my_var
Als gevolg hiervan kan het worden geopend en gewijzigd met behulp van de zelfreferentie in andere methoden van de klasse.
Naamgevingsconventies voor jezelf
Hoewel self
dit de conventionele naam is die wordt gebruikt voor de instantie in Python, kunt u technisch gezien elke gewenste naam gebruiken. Het wordt echter ten zeerste aanbevolen om jezelf te gebruiken voor duidelijkheid en consistentie met de bredere Python-gemeenschap.
Het gebruik van een andere naam kan verwarring veroorzaken bij degenen die uw code lezen en ermee werken, vooral als ze gewend zijn aan standaard naamgevingsconventies in Python-bibliotheken.
Waar niet te gebruiken Zelf
We weten al dat de self
parameter toegang geeft tot de objectinstantie. In sommige gevallen hebben sommige functies in de klasse echter geen toegang tot de objectinstantie nodig.
In dit scenario is de parameter self niet nodig. Python biedt dus een statische methodefunctie voor het omzeilen van de self-parameter:
Hier is een voorbeeld:
class Car: @staticmethod def print_car(): print('Vroom Vroom')
In het bovenstaande voorbeeld heft de @staticmethod
functie decorateur de self
parametervereiste in de methode op. Op deze manier wordt de functie nog steeds uitgevoerd, zelfs als er geen objectinstantie aan is doorgegeven.
Conclusie
Samenvattend verwijst de self-parameter in Python naar de instantie van een klasse en geeft u toegang tot de attributen en methoden. Als Python-ontwikkelaar is het belangrijk om het doel van self en het gebruik ervan in klassen en objecten te begrijpen.
Door self consistent in uw code te gebruiken, bevordert u de leesbaarheid en onderhoudbaarheid, wat de algehele kwaliteit van uw werk verbetert.
Onthoud ook dat hoewel je de term vaak in Python ziet "self"
, het geen gereserveerd Python-sleutelwoord is. Dit verschilt van programmeertalen zoals Javascript en Java , waar "this"
een gereserveerd trefwoord is.
U kunt de eerste parameter in een klassemethode een naam geven die u maar wilt; " self
" is gewoon de voorkeursconventie.
Er is een vraag die altijd leeft onder Python-programmeurs. Is zelf eigenlijk een trefwoord in Python?
In tegenstelling tot andere programmeertalen zoals C++, waar 'self' als een trefwoord wordt beschouwd, is dit in Python een conventie die programmeurs doorgaans volgen. Het is feitelijk een parameter in een methodedefinitie. U kunt echter elke andere naam gebruiken in plaats van uzelf, zoals andere of ik of iets anders voor de eerste parameter van een methode. Een andere reden waarom de meeste mensen dit suggereren, is dat het de leesbaarheid van uw code verbetert.
Laten we een voorbeeld bekijken om het te begrijpen:
class myClass: def show(another): print("andere wordt gebruikt in plaats van zelf")
Als je deze code vergelijkt met de code voor de zelfconstructor van de Python-klasse, zul je merken dat we hier de naam een andere in hebben gebruikt plaats van zelf. Laten we nu een object van deze klasse maken en de uitvoer bekijken:
object = mijnKlasse() object.show()
U kunt zien dat het programma werkt, zelfs als we een andere naam gebruiken in plaats van de variabele self. Het werkt op precies dezelfde manier als de zelfvariabele.
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten