Python OOP: Třída, Objekt, Dědičnost a Konstruktor s příkladem
OOPs in Python
OOPs in Python je programovací přístup, který se zaměřuje na používání objektů a tříd stejně jako ostatní obecné programovací jazyky. Objekty mohou být jakékoli entity reálného světa. Python umožňuje vývojářům vyvíjet aplikace pomocí přístupu OOPs s hlavním zaměřením na znovupoužitelnost kódu. Je velmi snadné vytvářet třídy a objekty Python.
Co je třída?
Třída v Python je logické seskupení dat a funkcí. Poskytuje svobodu vytvářet datové struktury, které obsahují libovolný obsah a jsou tedy snadno dostupné.
Například pro kteréhokoli zaměstnance banky, který chce získat podrobnosti o zákazníkovi online, by měl jít na zákaznická třída, kde by byly uvedeny všechny jeho atributy, jako jsou podrobnosti o transakci, podrobnosti o výběru a vkladu, nesplacený dluh atd.
Jak definovat Python třídy
Chcete-li definovat třídu, musíte zvážit následující body
Krok 1) In Python, třídy jsou definovány pomocí "Třída" Klíčové slovo
class myClass():
Krok 2) Uvnitř tříd můžete definovat funkce nebo metody, které jsou součástí této třídy
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Zde jsme definovali metodu1, která vypíše „Guru99“.
- Další metodou, kterou jsme definovali, je metoda2, která vypíše „Testování softwaru“ + SomeString. SomeString je proměnná dodaná volající metodou
Krok 3) Vše ve třídě je odsazeno, stejně jako kód ve funkci, smyčce, příkazu if atd. Vše, co není odsazeno, není ve třídě
POZNÁMKA: O používání „já“ v Python
- Sebeargument se týká samotného objektu. Proto použití slova já. Takže v této metodě bude self odkazovat na konkrétní instanci tohoto objektu, se kterým se pracuje.
- Self je jméno preferované podle konvence Pythons k označení prvního parametru instančních metod v Python. Je součástí systému Python syntaxe pro přístup k členům objektů
Krok 4) Chcete-li vytvořit objekt třídy
c = myClass()
Krok 5) Volání metody ve třídě
c.method1() c.method2(" Testing is fun")
- Všimněte si, že když zavoláme metodu1 nebo metodu2, nemusíme zadávat vlastní klíčové slovo. To za nás automaticky vyřizuje Python runtime.
- Python runtime předá hodnotu „self“, když v instanci zavoláte metodu instance, ať už ji poskytnete úmyslně nebo ne
- Jen se musíte starat o nesobecké argumenty
Krok 6) Zde je úplný kód
# Example file for working with classes class myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
Jak funguje dědičnost
Dědičnost je vlastnost používaná v objektově orientovaném programování; odkazuje na definování nové třídy s menšími nebo žádnými úpravami existující třídy. Nová třída se nazývá odvozená třída a od toho, který zdědí, se nazývá základna. Python podporuje dědičnost; také podporuje vícenásobná dědictví. Třída může dědit atributy a metody chování z jiné třídy, která se nazývá podtřída nebo třída dědice.
Python Syntaxe dědičnosti
class DerivedClass(BaseClass): body_of_derived_class
Krok 1) Spusťte následující kód
# Example file for working with classes class 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 methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Všimněte si, že metoda1 v childClass není definována, ale je odvozena z nadřazené myClass. Výstup je „Guru99“.
Krok 2) Odkomentujte řádek č. 8 a 10. Spusťte kód
Nyní je metoda 1 definována v childClass a výstup „childClass Method1“ je správně zobrazen.
Krok 3) Odkomentovat řádek č. 9. Spusťte kód
Pomocí syntaxe můžete volat metodu nadřazené třídy
ParentClassName.MethodName(self)
V našem případě zavoláme myClass.method1(self) a Guru99 se vytiskne podle očekávání
Krok 4) Odkomentovat řádek č. 19. Spusťte kód.
Zavolá se metoda 2 podřízené třídy a podle očekávání se vytiskne „metoda třídy2 dítěte“.
Python Konstruktory
Konstruktor je funkce třídy, která vytváří instanci objektu na předdefinované hodnoty.
Začíná dvojitým podtržítkem (_). Je to metoda __init__().
V níže uvedeném příkladu bereme jméno uživatele pomocí konstruktoru.
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name) User1 = User("Alex") User1.sayHello()
Výstup bude:
Vítejte v Guru99, Alexi
Python 2 Příklad
Výše uvedené kódy jsou Python 3 příklady, pokud se chcete zapojit Python 2 prosím zvažte následující kód.
# How to define Python classes # Example file for working with classes class myClass(): def method1(self): print "Guru99" def method2(self,someString): print "Software Testing:" + someString def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main() #How Inheritance works # Example file for working with classes class 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 methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Přečtěte si náš další tutoriál o Polymorfismus v Python
Shrnutí
„Třída“ je logické seskupení funkcí a dat. Python třídy poskytuje všechny standardní funkce objektově orientovaného programování.
- Mechanismus dědičnosti tříd
- Odvozená třída, která přepíše jakoukoli metodu své základní třídy
- Metoda může volat metodu základní třídy se stejným názvem
- Python Třídy jsou definovány klíčovým slovem "třída" sám
- Uvnitř tříd můžete definovat funkce nebo metody, které jsou součástí třídy
- Vše ve třídě je odsazeno, stejně jako kód ve funkci, smyčce, příkazu if atd.
- Vlastní argument v Python odkazuje na samotný objekt. Self je jméno preferované podle konvence Pythons k označení prvního parametru instančních metod v Python
-
Python runtime předá hodnotu „self“ automaticky, když v instanci zavoláte metodu instance, ať už ji poskytnete úmyslně nebo ne
- In Python, třída může zdědit atributy a metody chování z jiné třídy, která se nazývá podtřída nebo třída dědice.