Trieda je užívateľsky definovaný plán alebo prototyp, z ktorého sa vytvárajú objekty. Triedy poskytujú prostriedky na spájanie údajov a funkcií. Vytvorením novej triedy sa vytvorí nový typ objektu, ktorý umožní vytvárať nové inštancie tohto typu. Každá inštancia triedy môže mať pripojené atribúty na udržanie svojho stavu. Inštancie triedy môžu mať aj metódy (definované ich triedou) na úpravu ich stavu.
Aby sme pochopili potrebu vytvorenia triedy a objektu v Python zoberme si príklad, povedzme, že ste chceli sledovať počet psov, ktorí môžu mať rôzne atribúty, ako je plemeno a vek. Ak sa použije zoznam, prvým prvkom môže byť plemeno psa, kým druhým prvkom môže byť jeho vek. Predpokladajme, že existuje 100 rôznych psov, ako by ste potom vedeli, ktorý prvok by mal byť ktorý? Čo keby ste chceli týmto psom pridať ďalšie vlastnosti? Chýba tomu organizácia a je to presná potreba tried.
Syntax: Definícia triedy
class ClassName: # Statement>
Syntax: Definícia objektu
obj = ClassName() print(obj.atrr)>
Trieda vytvorí užívateľom definovanú Niektoré body triedy Python:
- Triedy sa vytvárajú pomocou kľúčových slov class.
- Atribúty sú premenné, ktoré patria do triedy.
- Atribúty sú vždy verejné a možno k nim pristupovať pomocou operátora bodka (.). Napr.: Moja trieda.Môj atribút
Vytvorenie triedy Python
Tu kľúčové slovo class označuje, že vytvárate triedu, za ktorou nasleduje názov triedy (v tomto prípade pes).
java pole slicePython3
class Dog: sound = 'bark'>
Objekt triedy Python
Objekt je inštanciou triedy. Trieda je ako plán, zatiaľ čo inštancia je kópiou triedy s skutočné hodnoty . Už to nie je nápad, je to skutočný pes, ako pes plemena mops, ktorý má sedem rokov. Môžete mať veľa psov na vytvorenie mnohých rôznych inštancií, ale bez triedy ako sprievodcu by ste boli stratení a nevedeli by ste, aké informácie sú potrebné.
Objekt pozostáva z:
- Štát: Je reprezentovaný atribútmi objektu. Odráža tiež vlastnosti objektu.
- Správanie: Je reprezentovaný metódami objektu. Odráža tiež reakciu objektu na iné objekty.
- identita: Objektom dáva jedinečný názov a umožňuje interakciu jedného objektu s inými objektmi.

Deklarovanie objektov triedy (nazývané aj vytváranie inštancií triedy)
Keď sa vytvorí objekt triedy, trieda sa považuje za inštanciu. Všetky inštancie zdieľajú atribúty a správanie triedy. Ale hodnoty týchto atribútov, t.j. stav, sú jedinečné pre každý objekt. Jedna trieda môže mať ľubovoľný počet inštancií.
Príklad:

Príklad triedy a objektu Pythonu
Vytvorenie objektu v Pythone zahŕňa vytvorenie inštancie triedy na vytvorenie novej inštancie tejto triedy. Tento proces sa tiež nazýva inštancia objektu.
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()> Výkon:
mammal I'm a mammal I'm a dog>
Vo vyššie uvedenom príklade je vytvorený objekt, ktorým je v podstate pes menom Rodger. Táto trieda má iba dva atribúty triedy, ktoré nám hovoria, že Rodger je pes a cicavec.
vysvetlenie:
V tomto príklade vytvárame triedu Pes a vytvorili sme dve premenné triedy attr1 a attr2 . Vytvorili sme metódu s názvom zábava () ktorý vráti reťazec I'm a, {attr1} a I'm a, {attr2}. Vytvorili sme objekt triedy Pes a tlačíme na attr1 objektu. Nakoniec voláme zábava () funkciu .
Vlastný parameter
Keď zavoláme metódu tohto objektu ako myobject.method(arg1, arg2), Python ju automaticky prevedie na MyClass.method(myobject, arg1, arg2) – toto je všetko špeciálne seba je o.
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 Seba Parameter ho nenazýva Self, namiesto neho môžete použiť akékoľvek iné meno. Tu zmeníme ja na slovo niekto a výstup bude rovnaký.
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()> Výkon: Výstup pre oba kódy bude rovnaký.
Hello my name is John and I work in GeeksForGeeks.>
Vysvetlenie:
V tomto príklade vytvárame triedu GFG a vytvorili sme triedu meno a spoločnosť premenné inštancie v konštruktore. Vytvorili sme metódu s názvom povedz ahoj() ktorý vráti reťazec Ahoj, volám sa + {meno} + a pracujem v +{spoločnosti}+..Vytvorili sme objekt triedy osoba a odovzdávame meno John and Company GeeksForGeeks do premennej inštancie. Nakoniec voláme na šou() triedy.
Pass Statement
Spustenie programu nie je ovplyvnené prejsť nečinnosť vyhlásenia. Umožňuje programu iba preskočiť túto časť kódu bez toho, aby niečo urobil. Často sa používa, keď syntaktické obmedzenia Pythonu vyžadujú platný príkaz, ale nie je potrebné vykonať žiadny užitočný kód.
Python3 class MyClass: pass>
metóda __init__().
The __horúce__ metóda je podobná ako u konštruktérov C++ a Java . Konštruktory sa používajú na inicializáciu stavu objektu. Podobne ako metódy, aj konštruktor obsahuje kolekciu príkazov (t.j. inštrukcií), ktoré sa vykonajú v čase vytvorenia objektu. Spustí sa hneď, ako sa vytvorí inštancia objektu triedy. Metóda je užitočná na vykonanie akejkoľvek inicializácie, ktorú chcete vykonať s vaším objektom.
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()> Výkon:
Hello, my name is Nikhil>
Vysvetlenie:
V tomto príklade vytvárame triedu Osoba a vytvorili sme a názov premenná inštancie v konštruktore. Vytvorili sme metódu nazvanú say_hi(), ktorá vracia reťazec Hello, my name is {name}. Vytvorili sme objekt triedy person a do premennej inštancie sme odovzdali meno Nikhil. Nakoniec voláme say_hi() triedy.
metóda __str__().
Python má konkrétnu metódu tzv __str__() . ktorá sa používa na definovanie toho, ako a trieda objekt by mal byť reprezentovaný ako reťazec. Často sa používa na poskytnutie ľudsky čitateľnej textovej reprezentácie objektu, ktorá je užitočná na zaznamenávanie, ladenie alebo zobrazovanie informácií o objekte používateľom. Keď sa objekt triedy používa na vytvorenie reťazca pomocou vstavaných funkcií print() a str(), __str__() funkcia sa použije automaticky. Môžete zmeniť, ako objekty a trieda sú reprezentované v reťazcoch definovaním __str__() metóda.
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)> Výkon:
My name is John and I work in GeeksForGeeks.>
Vysvetlenie:
V tomto príklade vytvárame triedu s názvom GFG. V triede vytvárame dve premenné inštancie meno a spoločnosť . V metóde __str__() vraciame názov premenná inštancie a spoločnosti premenná inštancie. Nakoniec vytvárame objekt triedy GFG a voláme metódu __str__().
Premenné triedy a inštancie
Premenné inštancie sú pre údaje jedinečné pre každú inštanciu a premenné triedy sú pre atribúty a metódy zdieľané všetkými inštanciami triedy. Premenné inštancie sú premenné, ktorých hodnota je priradená v konštruktore alebo metóde s vlastným, zatiaľ čo premenné triedy sú premenné, ktorých hodnota je priradená v triede.
Definovanie premenných inštancie pomocou konštruktora.
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)> Výkon :
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>
Vysvetlenie:
Trieda s názvom Pes je definovaná s a premenná triedy zvieracia súprava na povraz pes. Premenné triedy zdieľajú všetky objekty triedy a možno k nim pristupovať pomocou názvu triedy. Trieda psa má dve premenné inštancie plemeno a farba. Neskôr vytvoríme dva objekty pes class a tlačíme hodnotu oboch objektov s premennou triedy s názvom animal.
Definovanie premenných inštancie pomocou normálnej metódy:
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())> Výkon:
brown>
Vysvetlenie:
V tomto príklade sme definovali triedu s názvom pes a vytvorili sme a premenná triedy zviera. Vytvorili sme premennú inštanciu plemena v konštruktér . Trieda Pes pozostáva z dvoch metód setColor a getColo r, používajú sa na vytvorenie a inicializáciu premennej inštancie a načítanie hodnoty premennej inštancie. Urobili sme objekt z pes triedy a hodnotu premennej inštancie sme nastavili na hnedú a hodnotu vytlačíme v termináli.