En klasse er en brukerdefinert blåkopi eller prototype som objekter opprettes fra. Klasser gir et middel til å samle data og funksjonalitet sammen. Oppretting av en ny klasse skaper en ny type objekt, slik at nye forekomster av den typen kan lages. Hver klasseforekomst kan ha attributter knyttet til seg for å opprettholde sin tilstand. Klasseforekomster kan også ha metoder (definert av klassen deres) for å endre tilstanden.
For å forstå behovet for å lage en klasse og et objekt i Python la oss vurdere et eksempel, la oss si at du ønsket å spore antall hunder som kan ha forskjellige egenskaper som rase og alder. Hvis en liste brukes, kan det første elementet være hundens rase, mens det andre elementet kan representere dens alder. La oss anta at det er 100 forskjellige hunder, hvordan vil du da vite hvilket element som skal være hvilket? Hva om du ville legge til andre egenskaper til disse hundene? Dette mangler organisering og det er det nøyaktige behovet for klasser.
Syntaks: Klassedefinisjon
class ClassName: # Statement>
Syntaks: Objektdefinisjon
obj = ClassName() print(obj.atrr)>
Klassen oppretter en brukerdefinert Noen punkter på Python-klassen:
- Klasser opprettes etter nøkkelordklasse.
- Attributter er variablene som tilhører en klasse.
- Attributter er alltid offentlige og kan nås ved å bruke prikk (.)-operatoren. F.eks.: Min klasse. Min attributt
Opprette en Python-klasse
Her indikerer klassens nøkkelord at du oppretter en klasse etterfulgt av navnet på klassen (Hund i dette tilfellet).
blokkerte numrePython3
class Dog: sound = 'bark'>
Objekt av Python-klassen
Et objekt er en forekomst av en klasse. En klasse er som en blåkopi mens en forekomst er en kopi av klassen med faktiske verdier . Det er ikke en idé lenger, det er en ekte hund, som en hund av rasen mops som er syv år gammel. Du kan ha mange hunder for å lage mange forskjellige instanser, men uten klassen som veileder ville du gått deg vill, uten å vite hvilken informasjon som kreves.
Et objekt består av:
- Stat: Det er representert av attributtene til et objekt. Det gjenspeiler også egenskapene til et objekt.
- Oppførsel: Det er representert ved metodene til et objekt. Det reflekterer også responsen til et objekt på andre objekter.
- Identitet: Det gir et unikt navn til et objekt og lar ett objekt samhandle med andre objekter.

Erklære klasseobjekter (også kalt å instansiere en klasse)
Når et objekt av en klasse er opprettet, sies klassen å være instansiert. Alle forekomstene deler attributtene og oppførselen til klassen. Men verdiene til disse attributtene, dvs. tilstanden, er unike for hvert objekt. En enkelt klasse kan ha et hvilket som helst antall forekomster.
Eksempel:

Eksempel på Python-klasse og objekt
Å lage et objekt i Python innebærer å instansiere en klasse for å lage en ny forekomst av den klassen. Denne prosessen blir også referert til som objektinstansiering.
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()> Produksjon:
mammal I'm a mammal I'm a dog>
I eksemplet ovenfor opprettes et objekt som i utgangspunktet er en hund som heter Rodger. Denne klassen har bare to klasseattributter som forteller oss at Rodger er en hund og et pattedyr.
Forklaring:
I dette eksemplet lager vi en hundeklasse og vi har laget to klassevariabler attr1 og attr2 . Vi har laget en metode som heter moro() som returnerer strengen I'm a, {attr1} og I'm a, {attr2}. Vi har laget et objekt av hundeklassen og vi trykker på attr1 av objektet. Til slutt kaller vi moro() funksjon .
Selvparameter
Når vi kaller en metode for dette objektet som myobject.method(arg1, arg2), konverteres denne automatisk av Python til MyClass.method(myobject, arg1, arg2) – dette er det spesielle selv- er om.
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 Selv Parameter kaller det ikke å være selv, du kan bruke et hvilket som helst annet navn i stedet for det. Her endrer vi selvet til ordet noen og utgangen blir den samme.
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()> Produksjon: Utdata for begge kodene vil være det samme.
Hello my name is John and I work in GeeksForGeeks.>
Forklaring:
I dette eksemplet lager vi en GFG-klasse, og vi har laget navn og firma instansvariabler i konstruktøren. Vi har laget en metode som heter si hei() som returnerer strengen Hei mitt navn er + {navn} + og jeg jobber i +{company}+..Vi har opprettet et personklasseobjekt og vi sender navnet John og kompani GeeksForGeeks til instansvariabelen. Til slutt kaller vi forestilling() av klassen.
Passerklæring
Programmets utførelse er upåvirket av sende uttalelsens passivitet. Det tillater bare programmet å hoppe forbi den delen av koden uten å gjøre noe. Det brukes ofte når de syntaktiske begrensningene til Python krever en gyldig setning, men ingen nyttig kode må kjøres.
Python3 class MyClass: pass>
__init__() metode
De __varmt__ metoden ligner på konstruktører i C++ og Java . Konstruktører er vant til å initialisere objektets tilstand. I likhet med metoder, inneholder en konstruktør også en samling av setninger (dvs. instruksjoner) som utføres på tidspunktet for objektoppretting. Den kjører så snart et objekt i en klasse er instansiert. Metoden er nyttig for å gjøre enhver initialisering du vil gjøre med objektet ditt.
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()> Produksjon:
Hello, my name is Nikhil>
Forklaring:
I dette eksemplet lager vi en Person-klasse og vi har opprettet en Navn instansvariabel i konstruktøren. Vi har laget en metode kalt say_hi() som returnerer strengen Hei, mitt navn er {name}. Vi har opprettet et person-klasseobjekt og vi sender navnet Nikhil til instansvariabelen. Til slutt kaller vi say_hi() til klassen.
__str__() metode
Python har en spesiell metode kalt __str__() . som brukes til å definere hvordan en klasse objektet skal representeres som en streng. Det brukes ofte for å gi et objekt en menneskelig lesbar tekstrepresentasjon, noe som er nyttig for logging, feilsøking eller visning av brukerobjektinformasjon. Når et klasseobjekt brukes til å lage en streng ved hjelp av de innebygde funksjonene print() og str(), vil __str__() funksjonen brukes automatisk. Du kan endre hvordan objekter av en klasse er representert i strenger ved å definere __str__() metode.
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)> Produksjon:
My name is John and I work in GeeksForGeeks.>
Forklaring:
I dette eksemplet lager vi en klasse som heter GFG. I klassen lager vi to forekomstvariabler navn og firma . I __str__()-metoden returnerer vi Navn instansvariabel og selskap instansvariabel. Til slutt lager vi objektet til GFG-klassen og vi kaller __str__()-metoden.
Klasse- og instansvariabler
Forekomstvariabler er for data, unike for hver forekomst og klassevariabler er for attributter og metoder som deles av alle forekomster av klassen. Forekomstvariabler er variabler hvis verdi er tilordnet inne i en konstruktør eller metode med selv, mens klassevariabler er variabler hvis verdi er tilordnet i klassen.
Definere forekomstvariabler ved hjelp av en konstruktør.
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)> Produksjon :
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>
Forklaring:
En klasse som heter Dog er definert med en klassevariabel dyresett til strenghunden. Klassevariabler deles av alle objekter i en klasse og kan nås ved å bruke klassenavnet. Hundeklassen har to instansvariabler rase og farge. Senere lager vi to objekter av Hund klasse og vi skriver ut verdien av begge objektene med en klassevariabel kalt animal.
Definere forekomstvariabler ved å bruke normalmetoden:
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())> Produksjon:
brown>
Forklaring:
I dette eksemplet har vi definert en klasse kalt Hund og vi har laget en klassevariabel dyr. Vi har opprettet en forekomstvariabel rase i konstruktør . Klassen Hund består av to metoder sett farge og getColo r, de brukes til å opprette og initialisere en forekomstvariabel og hente verdien av forekomstvariabelen. Vi har laget et objekt av Hund klasse og vi har satt instansvariabelverdien til brun og vi skriver ut verdien i terminalen.