OOP Pythonu: trieda, objekt, dedičnosť a konštruktor s príkladom

Obsah:

Anonim

OOP v Pythone

OOP v Pythone je programovací prístup, ktorý sa zameriava na používanie objektov a tried rovnako ako v iných všeobecných programovacích jazykoch. Objekty môžu byť akékoľvek entity z reálneho sveta. Python umožňuje vývojárom vyvíjať aplikácie pomocou prístupu OOP s hlavným zameraním na opätovné použitie kódu. Vytváranie tried a objektov v Pythone je veľmi jednoduché.

Čo je to Trieda?

Trieda v Pythone je logické zoskupenie údajov a funkcií. Poskytuje slobodu vytvárať dátové štruktúry, ktoré obsahujú ľubovoľný obsah, a preto sú ľahko prístupné.

Napríklad pre každého zamestnanca banky, ktorý chce načítať údaje o zákazníkovi online, by prešiel do triedy zákazníkov , kde by boli uvedené všetky jeho atribúty, ako sú podrobnosti transakcie, podrobnosti o výbere a vklade, nesplatený dlh atď.

V tejto príručke sa dozvieme,

  • Ako definovať triedy Pythonu
  • Ako funguje dedičstvo
  • Konštruktory Pythonu

Ako definovať triedy Pythonu

Pri definovaní triedy je potrebné vziať do úvahy nasledujúce body

Krok 1) V Pythone sú triedy definované kľúčovým slovom „Class“

class myClass():

Krok 2) V triedach môžete definovať funkcie alebo metódy, ktoré sú súčasťou tejto triedy

def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
  • Tu sme definovali metódu1, ktorá vytlačí „Guru99“.
  • Ďalšou metódou, ktorú sme definovali, je metóda2, ktorá vytlačí „Testovanie softvéru“ + SomeString. SomeString je premenná poskytnutá volacou metódou

Krok 3) Všetko v triede je odsadené, rovnako ako kód vo funkcii, cykle, ak je to atď. Všetko, čo nie je odsadené, nie je v triede

POZNÁMKA : O použití „self“ v Pythone

  • Self-argument odkazuje na samotný objekt. Odtiaľ pochádza aj použitie slova ja. Takže v rámci tejto metódy bude self odkazovať na konkrétnu inštanciu tohto objektu, na ktorom sa operuje.
  • Self je názov preferovaný konvenciou Pythonsa na označenie prvého parametra inštančných metód v Pythone. Je súčasťou syntaxe Pythonu na prístup k členom objektov

Krok 4) Vytvorte predmet triedy

c = myClass()

Krok 5) Zavolanie metódy v triede

c.method1()c.method2(" Testing is fun")
  • Všimnite si, že keď voláme method1 alebo method2, nemusíme dodávať vlastné kľúčové slovo. To za nás runtime Pythonu automaticky rieši.
  • Modul runtime Python odovzdá hodnotu „self“, keď napríklad zavoláte inštančnú metódu, či už ju poskytnete zámerne alebo nie
  • Musíte si dať len záležať na argumentoch, ktoré nie sú vašimi vlastnými silami

Krok 6) Tu je kompletný kód

# Ukážkový súbor pre prácu s triedamitrieda myClass ():def metóda1 (vlastná):tlač („Guru99“)def metóda2 (self, someString):print ("Testovanie softvéru: + someString)def main ():# cvičiť triedne metódyc = myClass ()c.method1 ()c.method2 („Testovanie je zábava“)ak __name __ == "__main__":hlavný()

Ako funguje dedičstvo

Dedičnosť je funkcia používaná v objektovo orientovanom programovaní; označuje definovanie novej triedy s menšou alebo žiadnou úpravou existujúcej triedy. Nová trieda sa nazýva odvodená trieda a od tej, ktorú dedí, sa nazýva základ . Python podporuje dedenie; podporuje tiež viacnásobné dedičstvo . Trieda môže dediť atribúty a metódy správania z inej triedy, ktorá sa nazýva podtrieda alebo trieda dedičov.

Syntax dedičnosti Pythonu

class DerivedClass(BaseClass):body_of_derived_class

Krok 1) Spustite nasledujúci kód

# Ukážkový súbor pre prácu s triedamitrieda myClass ():def metóda1 (vlastná):tlač („Guru99“)trieda childClass (myClass):#def method1 (self):# myClass.method1 (self);#print ("childClass Method1")def metóda2 (sama):print ("childClass method2")def main ():# cvičiť triedne metódyc2 = childClass ()c2.method1 ()# c2.method2 ()ak __name __ == "__main__":hlavný()

Všimnite si, že v childClass, method1 nie je definovaná, ale je odvodená z nadradenej myClass. Výstup je „Guru99“.

Krok 2) Odkomentujte riadok 8 a 10. Spustite kód

Teraz je metóda 1 definovaná v childClass a výstup "childClass Method1" je správne zobrazený.

Krok 3) Odkomentujte riadok č. 9. Spustite kód

Metódu nadradenej triedy môžete zavolať pomocou syntaxe

ParentClassName.MethodName(self)

V našom prípade zavoláme myClass.method1 (self) a Guru99 sa vytlačí podľa očakávania

Krok 4 ) Odkomentujte riadok č. 19. Spustite kód.

Zavolá sa metóda 2 podradenej triedy a „childClass method2“ sa vytlačí podľa očakávania.

Konštruktory Pythonu

Konštruktor je funkcia triedy, ktorá inštancuje objekt na vopred definované hodnoty.

Začína sa to dvojitým podčiarkovníkom (_). Je to metóda __init __ ()

V nasledujúcom príklade berieme meno používateľa pomocou konštruktora.

class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()

Výstup bude:

Vitajte na Guru99, Alex

Príklad v jazyku Python 2

Vyššie uvedené kódy sú príklady jazyka Python 3. Ak chcete pracovať v jazyku Python 2, zvážte nasledujúci kód.

# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass myClass():def method1(self):print "Guru99"class childClass(myClass):#def method1(self):#myClass.method1(self);#print "childClass Method1"def method2(self):print "childClass method2"def main():# exercise the class methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()

Zhrnutie:

„Trieda“ je logické zoskupenie funkcií a údajov. Trieda Python poskytuje všetky štandardné funkcie Objektovo orientovaného programovania.

  • Mechanizmus dedenia triedy
  • Odvodená trieda, ktorá prepíše ktorúkoľvek metódu svojej základnej triedy
  • Metóda môže volať metódu základnej triedy s rovnakým názvom
  • Python Triedy sú definované pomocou kľúčového slova "triedy" sám
  • V triedach môžete definovať funkcie alebo metódy, ktoré sú súčasťou triedy
  • Všetko v triede je odsadené, rovnako ako kód vo funkcii, cykle, ak je to atď.
  • Vlastný argument v Pythone odkazuje na samotný objekt. Self je názov preferovaný konvenciou Pythonsa na označenie prvého parametra inštančných metód v Pythone
  • Modul runtime Python automaticky odovzdá hodnotu „self“, keď napríklad zavoláte inštančnú metódu, či už ju poskytnete zámerne alebo nie
  • V Pythone môže trieda dediť atribúty a metódy správania z inej triedy, ktorá sa nazýva podtrieda alebo trieda dediča.