Klasė yra vartotojo apibrėžtas projektas arba prototipas, iš kurio kuriami objektai. Klasės suteikia galimybę sujungti duomenis ir funkcijas. Sukūrus naują klasę sukuriamas naujo tipo objektas, leidžiantis sukurti naujus tokio tipo egzempliorius. Kiekvienas klasės egzempliorius gali turėti prie jo pridėtus atributus, kad išlaikytų savo būseną. Klasės egzemplioriai taip pat gali turėti metodus (apibrėžtus pagal jų klasę), skirtus jų būsenai keisti.
Suprasti, kad reikia sukurti klasę ir objektą Python Panagrinėkime pavyzdį, tarkime, kad norėjote stebėti šunų, kurie gali turėti skirtingus požymius, pvz., veislę ir amžių, skaičių. Jei naudojamas sąrašas, pirmasis elementas gali būti šuns veislė, o antrasis – jo amžių. Tarkime, kad yra 100 skirtingų šunų, tai kaip žinoti, kuris elementas turi būti kuris? Ką daryti, jei norėtumėte šiems šunims suteikti kitų savybių? Tam trūksta organizavimo ir tai yra tikslus užsiėmimų poreikis.
Sintaksė: Klasės apibrėžimas
class ClassName: # Statement>
Sintaksė: Objekto apibrėžimas
obj = ClassName() print(obj.atrr)>
Klasė sukuria vartotojo apibrėžtą Kai kurie punktai apie Python klasę:
- Klasės kuriamos pagal raktinį žodį klasė.
- Atributai yra kintamieji, priklausantys klasei.
- Atributai visada yra vieši ir juos galima pasiekti naudojant taško (.) operatorių. Pvz.: Mano klasė.Mano požymis
Python klasės kūrimas
Čia klasės raktinis žodis rodo, kad kuriate klasę, po kurios nurodomas klasės pavadinimas (šiuo atveju šuo).
eilutę į json objektąPython3
class Dog: sound = 'bark'>
Python klasės objektas
Objektas yra klasės pavyzdys. Klasė yra kaip planas, o egzempliorius yra klasės kopija faktines vertes . Tai jau ne idėja, tai tikras šuo, kaip septynerių metų mopso veislės šuo. Galite turėti daug šunų, kad sukurtumėte daugybę skirtingų egzempliorių, tačiau be klasės kaip vadovo būsite pasimetę, nežinodami, kokios informacijos reikia.
Objektą sudaro:
- Būsena: Jį reprezentuoja objekto atributai. Tai taip pat atspindi objekto savybes.
- Elgesys: Jis vaizduojamas objekto metodais. Tai taip pat atspindi objekto reakciją į kitus objektus.
- Tapatybė: Jis suteikia unikalų pavadinimą objektui ir leidžia vienam objektui sąveikauti su kitais objektais.

Klasės objektų deklaravimas (taip pat vadinamas klasės egzistavimu)
Kai sukuriamas klasės objektas, sakoma, kad klasė yra egzempliorius. Visi egzemplioriai dalijasi klasės atributais ir elgsena. Bet tų atributų reikšmės, ty būsena, kiekvienam objektui yra unikalios. Viena klasė gali turėti bet kokį egzempliorių skaičių.
Pavyzdys:

Python klasės ir objekto pavyzdys
Kuriant objektą Python, reikia sukurti klasę, kad būtų sukurtas naujas tos klasės egzempliorius. Šis procesas taip pat vadinamas objekto egzistavimu.
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()> Išvestis:
mammal I'm a mammal I'm a dog>
Aukščiau pateiktame pavyzdyje sukuriamas objektas, kuris iš esmės yra šuo vardu Rodgeris. Ši klasė turi tik du klasės atributus, kurie rodo, kad Rodgeris yra šuo ir žinduolis.
Paaiškinimas:
Šiame pavyzdyje mes kuriame šunų klasę ir sukūrėme du klasės kintamuosius attr1 ir attr2 . Sukūrėme metodą pavadinimu linksma() kuri grąžina eilutę I'm a, {attr1} ir I'm a, {attr2}. Sukūrėme šunų klasės objektą ir spausdiname attr1 objekto. Galiausiai, mes skambiname į linksma() funkcija .
Savęs parametras
Kai šio objekto metodą vadiname myobject.method(arg1, arg2), Python jį automatiškai konvertuoja į MyClass.method(myobject, arg1, arg2) – visa tai yra ypatinga savarankiškai yra apie.
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()> The Savarankiškai Parametras jo nevadina „Self“, vietoj jo galite naudoti bet kokį kitą pavadinimą. Čia mes pakeičiame save į žodį kažkas ir išvestis bus tokia pati.
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()> Išvestis: Abiejų kodų išvestis bus tokia pati.
Hello my name is John and I work in GeeksForGeeks.>
Paaiškinimas:
Šiame pavyzdyje mes kuriame GFG klasę ir sukūrėme pavadinimas ir įmonė egzempliorių kintamieji konstruktoriuje. Sukūrėme metodą pavadinimu sakyk labas() kuri grąžina eilutę Sveiki, mano vardas yra + {vardas} + ir aš dirbu +{įmonėje}+..Sukūrėme asmens klasės objektą ir perduodame vardą Jonas ir kompanija GeeksForGeeks į egzemplioriaus kintamąjį. Galiausiai, mes skambiname į Rodyti() klasės.
Paskelbimo pareiškimas
Programos vykdymui įtakos neturi praeiti pareiškimo neveikimas. Tai tik leidžia programai praleisti tą kodo skyrių nieko nedarant. Jis dažnai naudojamas, kai „Python“ sintaksiniai apribojimai reikalauja tinkamo teiginio, tačiau nereikia vykdyti jokio naudingo kodo.
Python3 class MyClass: pass>
__init__() metodas
The __karšta__ metodas yra panašus į konstruktorių C++ ir Java . Konstruktoriai naudojami objekto būsenai inicijuoti. Kaip ir metodai, konstruktorius taip pat turi teiginių (ty instrukcijų), kurie vykdomi kuriant objektą, rinkinį. Jis paleidžiamas, kai tik sukuriamas klasės objektas. Šis metodas yra naudingas norint atlikti bet kokią inicijaciją, kurią norite atlikti su objektu.
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()> Išvestis:
Hello, my name is Nikhil>
Paaiškinimas:
Šiame pavyzdyje mes kuriame Asmens klasę ir sukūrėme a vardas egzemplioriaus kintamasis konstruktoriuje. Sukūrėme metodą, pavadintą say_hi(), kuris grąžina eilutę Sveiki, mano vardas yra {name}. Sukūrėme asmens klasės objektą ir pavadinimą Nikhil perduodame egzemplioriaus kintamajam. Galiausiai, mes iškviečiame klasės say_hi().
__str__() metodas
Python turi tam tikrą metodą, vadinamą __str__() . kuris naudojamas apibrėžti, kaip a klasė objektas turi būti vaizduojamas kaip eilutė. Jis dažnai naudojamas norint suteikti objektui žmogaus skaitomą tekstinį vaizdą, kuris yra naudingas registruojant, derinant arba rodant naudotojų objekto informaciją. Kai klasės objektas naudojamas kuriant eilutę naudojant įtaisytąsias funkcijas print() ir str(), __str__() funkcija naudojama automatiškai. Galite pakeisti, kaip objektai a klasė yra vaizduojamos eilutėse, apibrėžiant __str__() metodas.
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)> Išvestis:
My name is John and I work in GeeksForGeeks.>
Paaiškinimas:
Šiame pavyzdyje kuriame klasę pavadinimu GFG. Klasėje kuriame du egzempliorių kintamuosius pavadinimas ir įmonė . __str__() metodu grąžiname vardas atvejo kintamasis ir bendrovė atvejo kintamasis. Galiausiai kuriame GFG klasės objektą ir iškviečiame __str__() metodą.
Klasės ir egzempliorių kintamieji
Pavyzdžių kintamieji yra skirti duomenims, unikalūs kiekvienam egzemplioriui ir klasės kintamieji yra skirti atributams ir metodams, kuriais dalijasi visi klasės egzemplioriai. Egzempliorių kintamieji yra kintamieji, kurių vertė priskiriama konstruktoriaus ar metodo viduje, o klasės kintamieji yra kintamieji, kurių vertė priskiriama klasėje.
Egzempliorių kintamųjų apibrėžimas naudojant konstruktorių.
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)> Išvestis :
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>
Paaiškinimas:
Klasė, pavadinta Šuo, apibrėžiama a klasės kintamasis gyvūnas, nustatytas prie styginio šuns. Klasės kintamuosius dalijasi visi klasės objektai ir juos galima pasiekti naudojant klasės pavadinimą. Šunų klasė turi du egzempliorių kintamuosius veislė ir spalva. Vėliau kuriame du objektus Šuo klasė ir mes spausdiname abiejų objektų vertę su klasės kintamuoju pavadinimu gyvūnas.
Egzempliorių kintamųjų apibrėžimas naudojant įprastą metodą:
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())> Išvestis:
brown>
Paaiškinimas:
Šiame pavyzdyje mes apibrėžėme klasę pavadinimu Šuo ir sukūrėme a klasės kintamasis gyvūnas. Mes sukūrėme egzempliorių kintamąją veislę konstruktorius . Šuo klasė susideda iš dviejų metodų setColor ir getColo r, jie naudojami egzemplioriaus kintamajam sukurti ir inicijuoti bei egzemplioriaus kintamojo vertei gauti. Mes sukūrėme objektą Šuo klasė, o egzemplioriaus kintamojo reikšmę nustatėme į rudą, o reikšmę spausdiname terminale.