Een klasse is een door de gebruiker gedefinieerde blauwdruk of prototype waaruit objecten worden gemaakt. Klassen bieden een manier om data en functionaliteit te bundelen. Door een nieuwe klasse te maken, wordt een nieuw type object gemaakt, waardoor nieuwe exemplaren van dat type kunnen worden gemaakt. Aan elke klasse-instantie kunnen attributen zijn gekoppeld om de status ervan te behouden. Klasse-instanties kunnen ook methoden hebben (gedefinieerd door hun klasse) om hun status te wijzigen.
Om de noodzaak van het creëren van een klasse en object in te begrijpen Python Laten we een voorbeeld bekijken. Laten we zeggen dat u het aantal honden wilt bijhouden die mogelijk verschillende kenmerken hebben, zoals ras en leeftijd. Als een lijst wordt gebruikt, kan het eerste element het ras van de hond zijn, terwijl het tweede element de leeftijd ervan kan vertegenwoordigen. Laten we aannemen dat er 100 verschillende honden zijn, hoe zou je dan weten welk element welk element zou moeten zijn? Wat als u andere eigenschappen aan deze honden zou willen toevoegen? Dit mist organisatie en het is precies de behoefte aan lessen.
Syntaxis: Klasse definitie
class ClassName: # Statement>
Syntaxis: Objectdefinitie
obj = ClassName() print(obj.atrr)>
De klasse maakt een door de gebruiker gedefinieerd Enkele punten over de Python-klasse:
- Klassen worden gemaakt per trefwoordklasse.
- Attributen zijn de variabelen die bij een klasse horen.
- Kenmerken zijn altijd openbaar en toegankelijk via de puntoperator (.). Bijv.: Mijn klas.Mijn attribuut
Een Python-klasse maken
Hier geeft het trefwoord class aan dat u een klasse aanmaakt, gevolgd door de naam van de klasse (in dit geval Hond).
Java-code voorbeeldenPython3
class Dog: sound = 'bark'>
Object van Python-klasse
Een object is een instantie van een klasse. Een klasse is als een blauwdruk, terwijl een instantie een kopie is van de klasse werkelijke waarden . Het is geen idee meer, het is een echte hond, zoals een mopshond van het ras van zeven jaar oud. Je kunt veel honden hebben om veel verschillende voorbeelden te creëren, maar zonder de klas als gids zou je verdwaald zijn en niet weten welke informatie nodig is.
Een object bestaat uit:
- Staat: Het wordt weergegeven door de attributen van een object. Het weerspiegelt ook de eigenschappen van een object.
- Gedrag: Het wordt weergegeven door de methoden van een object. Het weerspiegelt ook de reactie van een object op andere objecten.
- Identiteit: Het geeft een unieke naam aan een object en zorgt ervoor dat een object kan communiceren met andere objecten.
Klasseobjecten declareren (ook wel het instantiëren van een klasse genoemd)
Wanneer een object van een klasse wordt gemaakt, wordt gezegd dat de klasse wordt geïnstantieerd. Alle instanties delen de attributen en het gedrag van de klasse. Maar de waarden van die attributen, dat wil zeggen de staat, zijn uniek voor elk object. Een enkele klasse kan een willekeurig aantal instanties hebben.
Voorbeeld:
Voorbeeld van Python-klasse en object
Het maken van een object in Python omvat het instantiëren van een klasse om een nieuw exemplaar van die klasse te maken. Dit proces wordt ook wel object-instantiatie genoemd.
Python3 # Python3 program to # demonstrate instantiating # a class class Dog: # A simple class # attribute attr1 = 'mammal' attr2 = 'dog' # A sample method def fun(self): print('I'm a', self.attr1) print('I'm a', self.attr2) # Driver code # Object instantiation Rodger = Dog() # Accessing class attributes # and method through objects print(Rodger.attr1) Rodger.fun()>
Uitgang:
mammal I'm a mammal I'm a dog>
In het bovenstaande voorbeeld wordt een object gemaakt dat in feite een hond is genaamd Rodger. Deze klasse heeft slechts twee klassekenmerken die ons vertellen dat Rodger een hond en een zoogdier is.
Uitleg :
In dit voorbeeld maken we een klasse Dog en hebben we twee klassevariabelen gemaakt attr1 en attr2 . We hebben een methode gemaakt met de naam plezier() wat de string retourneert: ik ben a, {attr1} en ik ben a, {attr2}. We hebben een object van de Dog-klasse gemaakt en we printen op de attr1 van het voorwerp. Tenslotte bellen wij met de plezier() functie .
Zelfparameter
Wanneer we een methode van dit object aanroepen als myobject.method(arg1, arg2), wordt dit automatisch door Python omgezet in MyClass.method(myobject, arg1, arg2) – dit is allemaal bijzonder zelf gaat over.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def show(self): print('Hello my name is ' + self.name+' and I' + ' work in '+self.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()>
De Zelf Parameter noemt het niet Self. U kunt in plaats daarvan een andere naam gebruiken. Hier veranderen we het zelf in het woord iemand en de uitvoer zal hetzelfde zijn.
Python3 class GFG: def __init__(somename, name, company): somename.name = name somename.company = company def show(somename): print('Hello my name is ' + somename.name + ' and I work in '+somename.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()>
Uitgang: De uitvoer voor beide codes zal hetzelfde zijn.
Hello my name is John and I work in GeeksForGeeks.>
Uitleg:
In dit voorbeeld maken we een GFG-klasse en hebben we de naam en bedrijf instantievariabelen in de constructor. We hebben een methode gemaakt met de naam zeg gedag() wat de string retourneert Hallo mijn naam is + {name} + en ik werk in +{company}+..We hebben een persoonsklasse-object gemaakt en we geven de naam door Johannes en Compagnie GeeksForGeeks naar de instantievariabele. Tenslotte bellen wij met de show() van de klas.
Pass-verklaring
De uitvoering van het programma wordt niet beïnvloed door de doorgang passiviteit van de verklaring. Het staat het programma alleen toe om dat gedeelte van de code over te slaan zonder iets te doen. Het wordt vaak gebruikt wanneer de syntactische beperkingen van Python een geldige verklaring vereisen, maar er geen bruikbare code moet worden uitgevoerd.
Python3 class MyClass: pass>
__init__() methode
De __heet__ methode is vergelijkbaar met constructors in C++ En Java . Constructors worden gebruikt om de status van het object te initialiseren. Net als methoden bevat een constructor ook een verzameling instructies (dat wil zeggen instructies) die worden uitgevoerd op het moment dat het object wordt gemaakt. Het wordt uitgevoerd zodra een object van een klasse wordt geïnstantieerd. De methode is handig om elke initialisatie uit te voeren die u met uw object wilt uitvoeren.
Python3 # Sample class with init method class Person: # init method or constructor def __init__(self, name): self.name = name # Sample Method def say_hi(self): print('Hello, my name is', self.name) p = Person('Nikhil') p.say_hi()>
Uitgang:
Hello, my name is Nikhil>
Uitleg:
In dit voorbeeld maken we een klasse Person en hebben we een naam instancevariabele in de constructor. We hebben een methode gemaakt met de naam Say_hi() die de string retourneert Hallo, mijn naam is {name}. We hebben een persoonsklasseobject gemaakt en we geven de naam Nikhil door aan de instantievariabele. Ten slotte roepen we de Say_hi() van de klasse aan.
__str__() methode
Python heeft een bepaalde methode genaamd __str__() . dat wordt gebruikt om te definiëren hoe a klas object moet worden weergegeven als een string. Het wordt vaak gebruikt om een object een voor mensen leesbare tekstuele representatie te geven, wat handig is bij het loggen, debuggen of het tonen van objectinformatie aan gebruikers. Wanneer een klasseobject wordt gebruikt om een string te maken met behulp van de ingebouwde functies print() en str(), wordt de __str__() functie wordt automatisch gebruikt. U kunt wijzigen hoe objecten van a klas worden weergegeven in tekenreeksen door het definiëren van de __str__() methode.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def __str__(self): return f'My name is {self.name} and I work in {self.company}.' my_obj = GFG('John', 'GeeksForGeeks') print(my_obj)>
Uitgang:
My name is John and I work in GeeksForGeeks.>
Uitleg:
In dit voorbeeld maken we een klasse met de naam GFG. In de klasse maken we twee instantievariabelen naam en bedrijf . In de __str__() methode retourneren we de naam instantievariabele en bedrijf instantievariabele. Ten slotte maken we het object van de GFG-klasse en roepen we de methode __str__() aan.
Klasse- en instantievariabelen
Instantievariabelen zijn voor gegevens, uniek voor elke instantie, en klassevariabelen zijn voor attributen en methoden die door alle instanties van de klasse worden gedeeld. Instantievariabelen zijn variabelen waarvan de waarde wordt toegewezen binnen een constructor of methode met self, terwijl klassevariabelen variabelen zijn waarvan de waarde wordt toegewezen in de klasse.
Instantievariabelen definiëren met behulp van een constructor.
Python3 # Python3 program to show that the variables with a value # assigned in the class declaration, are class variables and # variables inside methods and constructors are instance # variables. # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed, color): # Instance Variable self.breed = breed self.color = color # Objects of Dog class Rodger = Dog('Pug', 'brown') Buzo = Dog('Bulldog', 'black') print('Rodger details:') print('Rodger is a', Rodger.animal) print('Breed: ', Rodger.breed) print('Color: ', Rodger.color) print('
Buzo details:') print('Buzo is a', Buzo.animal) print('Breed: ', Buzo.breed) print('Color: ', Buzo.color) # Class variables can be accessed using class # name also print('
Accessing class variable using class name') print(Dog.animal)>
Uitvoer :
Rodger details: Rodger is a dog Breed: Pug Color: brown Buzo details: Buzo is a dog Breed: Bulldog Color: black Accessing class variable using class name dog>
Uitleg:
Een klasse genaamd Dog wordt gedefinieerd met a klasse variabele dier ingesteld op de touwhond. Klassevariabelen worden gedeeld door alle objecten van een klasse en zijn toegankelijk via de klassenaam. De hondenklasse heeft twee instantievariabelen ras en kleur. Later maken we twee objecten van de Hond class en we drukken de waarde van beide objecten af met een klassevariabele genaamd animal.
Instantievariabelen definiëren met behulp van de normale methode:
Python3 # Python3 program to show that we can create # instance variables inside methods # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed): # Instance Variable self.breed = breed # Adds an instance variable def setColor(self, color): self.color = color # Retrieves instance variable def getColor(self): return self.color # Driver Code Rodger = Dog('pug') Rodger.setColor('brown') print(Rodger.getColor())>
Uitgang:
brown>
Uitleg:
In dit voorbeeld hebben we een klasse gedefinieerd met de naam Hond En we hebben een gemaakt klasse variabele dier. We hebben een instantievariabel ras gemaakt in de bouwer . De klasse Hond bestaat uit twee methoden setKleur En krijgColo r, worden ze gebruikt voor het maken en initialiseren van een instantievariabele en het ophalen van de waarde van de instantievariabele. We hebben er een object van gemaakt Hond class en we hebben de waarde van de instantievariabele ingesteld op bruin en we drukken de waarde af in de terminal.