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.