O clasă este un model sau un prototip definit de utilizator din care sunt create obiecte. Clasele oferă un mijloc de a grupa datele și funcționalitățile. Crearea unei clase noi creează un nou tip de obiect, permițând crearea de noi instanțe de acest tip. Fiecare instanță de clasă poate avea atribute atașate pentru menținerea stării sale. Instanțele de clasă pot avea și metode (definite de clasa lor) pentru modificarea stării lor.
Pentru a înțelege necesitatea creării unei clase și a unui obiect în Piton să luăm în considerare un exemplu, să presupunem că ați vrut să urmăriți numărul de câini care pot avea atribute diferite, cum ar fi rasa și vârsta. Dacă se folosește o listă, primul element ar putea fi rasa câinelui, în timp ce al doilea element ar putea reprezenta vârsta acestuia. Să presupunem că există 100 de câini diferiți, atunci de unde știi care element ar trebui să fie care? Ce se întâmplă dacă ați dori să adăugați alte proprietăți acestor câini? Acest lucru lipsește de organizare și este exact nevoia de cursuri.
Sintaxă: Definiția clasei
class ClassName: # Statement>
Sintaxă: Definirea obiectului
obj = ClassName() print(obj.atrr)>
Clasa creează un program definit de utilizator Câteva puncte despre clasa Python:
- Clasele sunt create prin clasa de cuvinte cheie.
- Atributele sunt variabilele care aparțin unei clase.
- Atributele sunt întotdeauna publice și pot fi accesate folosind operatorul punct (.). Ex.: Clasa mea.Atributul meu
Crearea unei clase Python
Aici, cuvântul cheie class indică faptul că creați o clasă urmată de numele clasei (câine în acest caz).
șir în char javaPython3
class Dog: sound = 'bark'>
Obiectul clasei Python
Un obiect este o instanță a unei clase. O clasă este ca un plan, în timp ce o instanță este o copie a clasei cu valori reale . Nu mai este o idee, este un câine real, ca un câine de rasă pug care are șapte ani. Puteți avea mulți câini pentru a crea multe instanțe diferite, dar fără clasa ca ghid, ați fi pierdut, neștiind ce informații sunt necesare.
Un obiect este format din:
- Stat: Este reprezentat de atributele unui obiect. De asemenea, reflectă proprietățile unui obiect.
- Comportament: Este reprezentat prin metodele unui obiect. De asemenea, reflectă răspunsul unui obiect la alte obiecte.
- Identitate: Acesta dă un nume unic unui obiect și îi permite unui obiect să interacționeze cu alte obiecte.

Declararea obiectelor clasei (numită și instanțierea unei clase)
Când un obiect al unei clase este creat, se spune că clasa este instanțiată. Toate instanțele împărtășesc atributele și comportamentul clasei. Dar valorile acelor atribute, adică starea, sunt unice pentru fiecare obiect. O singură clasă poate avea orice număr de instanțe.
Exemplu:

Exemplu de clasă Python și obiect
Crearea unui obiect în Python implică instanțierea unei clase pentru a crea o nouă instanță a acelei clase. Acest proces este denumit și instanțierea obiectului.
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()> Ieșire:
mammal I'm a mammal I'm a dog>
În exemplul de mai sus, este creat un obiect care este practic un câine numit Rodger. Această clasă are doar două atribute de clasă care ne spun că Rodger este un câine și un mamifer.
Explicatie:
În acest exemplu, creăm o clasă Dog și am creat două variabile de clasă attr1 și attr2 . Am creat o metodă numită distracţie() care returnează șirul I’m a, {attr1} și I’m a, {attr2}. Am creat un obiect din clasa Câini și imprimăm la attr1 a obiectului. În cele din urmă, numim distracţie() funcţie .
Parametrul de sine
Când numim o metodă a acestui obiect ca myobject.method(arg1, arg2), aceasta este convertită automat de către Python în MyClass.method(myobject, arg1, arg2) - aceasta este totul special de sine este despre.
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 De sine Parametrul nu îl numește Sine, puteți folosi orice alt nume în locul lui. Aici schimbăm sinele cu cuvântul cineva și rezultatul va fi același.
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()> Ieșire: Ieșirea pentru ambele coduri va fi aceeași.
Hello my name is John and I work in GeeksForGeeks.>
Explicaţie:
În acest exemplu, creăm o clasă GFG și am creat nume și companie variabile de instanță în constructor. Am creat o metodă numită spune bună() care returnează șirul Bună ziua, numele meu este + {nume} + și lucrez în +{company}+..Am creat un obiect de clasă persoană și am trecut numele John și Compania GeeksForGeeks la variabila de instanță. În cele din urmă, numim spectacol() a clasei.
Declarație de trecere
Execuția programului nu este afectată de trece inacțiunea declarației. Pur și simplu permite programului să treacă peste acea secțiune a codului fără a face nimic. Este folosit frecvent atunci când constrângerile sintactice ale lui Python solicită o declarație validă, dar nu trebuie executat niciun cod util.
Python3 class MyClass: pass>
metoda __init__().
The __Fierbinte__ metoda este similară cu constructorilor din C++ și Java . Constructorii sunt folosiți pentru a inițializa starea obiectului. Ca și metodele, un constructor conține, de asemenea, o colecție de instrucțiuni (adică instrucțiuni) care sunt executate în momentul creării obiectului. Se rulează de îndată ce un obiect al unei clase este instanțiat. Metoda este utilă pentru a face orice inițializare pe care doriți să o faceți cu obiectul dvs.
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()> Ieșire:
Hello, my name is Nikhil>
Explicaţie:
În acest exemplu, creăm o clasă Person și am creat un Nume variabilă de instanță în constructor. Am creat o metodă numită say_hi() care returnează șirul Bună ziua, numele meu este {name}. Am creat un obiect de clasă persoană și trecem numele Nikhil variabilei instanței. În cele din urmă, apelăm say_hi() al clasei.
metoda __str__().
Python are o anumită metodă numită __str__() . care este folosit pentru a defini modul în care a clasă obiectul trebuie reprezentat ca un șir. Este adesea folosit pentru a oferi unui obiect o reprezentare textuală care poate fi citită de om, care este utilă pentru înregistrarea, depanarea sau afișarea informațiilor despre obiectele utilizatorilor. Când un obiect de clasă este folosit pentru a crea un șir folosind funcțiile încorporate print() și str(), the __str__() funcția este utilizată automat. Puteți modifica modul în care obiectele a clasă sunt reprezentate în șiruri de caractere prin definirea __str__() metodă.
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)> Ieșire:
My name is John and I work in GeeksForGeeks.>
Explicaţie:
În acest exemplu, creăm o clasă numită GFG. În clasă, creăm două variabile de instanță numele si firma . În metoda __str__() returnăm Nume variabilă de instanță și companie variabila de instanta. În cele din urmă, creăm obiectul clasei GFG și apelăm metoda __str__().
Variabile de clasă și de instanță
Variabile de instanta sunt pentru date, unice pentru fiecare instanță, iar variabilele de clasă sunt pentru atribute și metode partajate de toate instanțele clasei. Variabilele de instanță sunt variabile a căror valoare este atribuită în interiorul unui constructor sau unei metode cu self, în timp ce variabilele de clasă sunt variabile a căror valoare este atribuită în clasă.
Definirea variabilelor de instanță folosind un 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)> Ieșire :
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>
Explicaţie:
O clasă numită Câine este definită cu a variabila de clasa animal pus la câinele de sfoară. Variabilele de clasă sunt partajate de toate obiectele unei clase și pot fi accesate folosind numele clasei. Clasa câine are două variabile de instanță rasa si culoarea. Mai târziu, creăm două obiecte ale Câine class și imprimăm valoarea ambelor obiecte cu o variabilă de clasă numită animal.
Definirea variabilelor de instanță folosind metoda normală:
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())> Ieșire:
brown>
Explicaţie:
În acest exemplu, am definit o clasă numită Câine și am creat o variabila de clasa animal. Am creat o rase variabilă de instanță în constructor . Clasa Câine este formată din două metode setColor și getColo r, ele sunt folosite pentru crearea și inițializarea unei variabile de instanță și pentru preluarea valorii variabilei de instanță. Am făcut un obiect al Câine class și am setat valoarea variabilei de instanță la maro și tipărim valoarea în terminal.