OOP v Pythonu
OOP v Pythonu je programovací přístup, který se zaměřuje na používání objektů a tříd stejně jako v jiných obecných programovacích jazycích. Objekty mohou být jakékoli entity z reálného světa. Python umožňuje vývojářům vyvíjet aplikace pomocí přístupu OOP s hlavním zaměřením na opětovné použití kódu. Vytváření tříd a objektů v Pythonu je velmi snadné.
Co je to třída?
Třída v Pythonu je logické seskupení dat a funkcí. Poskytuje svobodu vytvářet datové struktury, které obsahují libovolný obsah, a proto jsou snadno přístupné.
Například pro každého zaměstnance banky, který chce načíst podrobnosti o zákazníkovi online, by šel do třídy zákazníků , kde by byly uvedeny všechny jeho atributy, jako jsou podrobnosti transakce, podrobnosti o výběru a vkladu, nesplacený dluh atd.
V tomto tutoriálu se naučíme,
- Jak definovat třídy Pythonu
- Jak funguje dědičnost
- Konstruktory Pythonu
Jak definovat třídy Pythonu
Chcete-li definovat třídu, musíte vzít v úvahu následující body
Krok 1) V Pythonu jsou třídy definovány klíčovým slovem „Class“
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á vytiskne „Guru99“.
- Další metodou, kterou jsme definovali, je metoda2, která vytiskne „Testování softwaru“ + SomeString. SomeString je proměnná poskytovaná volající metodou
Krok 3) Všechno ve třídě je odsazeno, stejně jako kód ve funkci, smyčce, příkazu if atd. Cokoli, co není odsazeno, není ve třídě
POZNÁMKA : O používání „self“ v Pythonu
- Self-argument odkazuje na samotný objekt. Odtud pochází použití slova já. Takže uvnitř této metody bude self odkazovat na konkrétní instanci tohoto objektu, který je provozován.
- Self je název preferovaný konvencí Pythons k označení prvního parametru instančních metod v Pythonu. Je součástí syntaxe Pythonu pro přístup ke členům objektů
Krok 4) Vytvoření předmětu 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ž voláme metodu1 nebo metodu2, nemusíme zadávat klíčové slovo self. To za nás runtime Pythonu automaticky zpracovává.
- Python runtime předá hodnotu „self“, když zavoláte instanční metodu na instanci, ať už ji poskytnete záměrně nebo ne
- Musíte se jen starat o non-self argumenty
Krok 6) Zde je kompletní kód
# Ukázkový soubor pro práci s třídamitřída myClass ():def metoda1 (vlastní):tisk ("Guru99")def metoda2 (self, someString):print ("Testování softwaru: + someString)def main ():# procvičte metody třídyc = myClass ()c.method1 ()c.method2 ("Testování je zábava")pokud __name __ == "__main__":hlavní()
Jak funguje dědičnost
Dědičnost je funkce 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 té, kterou zdědí, se nazývá základna . Python podporuje dědičnost; podporuje také více dědičností . Třída může zdědit atributy a metody chování z jiné třídy zvané podtřída nebo třída dědice.
Syntaxe dědičnosti Pythonu
class DerivedClass(BaseClass):body_of_derived_class
Krok 1) Spusťte následující kód
# Ukázkový soubor pro práci s třídamitřída myClass ():def metoda1 (vlastní):tisk ("Guru99")třída childClass (myClass):#def method1 (self):# myClass.method1 (self);#print ("childClass Method1")def metoda2 (vlastní):print ("childClass method2")def main ():# procvičte metody třídyc2 = childClass ()c2.method1 ()# c2.method2 ()pokud __name __ == "__main__":hlavní()
Všimněte si, že v childClass, method1 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) Odkomentujte řádek č. 9. Spusťte kód
Metodu nadřazené třídy můžete volat pomocí syntaxe
ParentClassName.MethodName(self)
V našem případě voláme myClass.method1 (self) a Guru99 se vytiskne podle očekávání
Krok 4 ) Odkomentujte řádek č. 19. Spusťte kód.
Volá se metoda 2 podřízené třídy a „childClass method2“ se vytiskne podle očekávání.
Konstruktory Pythonu
Konstruktor je funkce třídy, která vytváří instanci objektu na předdefinované hodnoty.
Začíná to dvojitým podtržítkem (_). Je to metoda __init __ ()
V níže uvedeném příkladu vezmeme jméno uživatele pomocí konstruktoru.
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:
Vítejte na Guru99, Alex
Příklad Pythonu 2
Výše uvedené kódy jsou příklady Pythonu 3. Pokud chcete běžet v Pythonu 2, zvažte následující 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()
Souhrn:
„Třída“ je logické seskupení funkcí a dat. Třída Python 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 pomocí klíčového slova „třídy“ sám
- Uvnitř tříd můžete definovat funkce nebo metody, které jsou součástí třídy
- Všechno ve třídě je odsazeno, stejně jako kód ve funkci, smyčce, if, atd.
- Vlastní argument v Pythonu odkazuje na samotný objekt. Self je název preferovaný konvencí Pythons k označení prvního parametru instančních metod v Pythonu
- Modul runtime Python automaticky předá hodnotu „self“, když zavoláte instanční metodu v instanci, ať už ji poskytnete záměrně nebo ne
- V Pythonu může třída zdědit atributy a metody chování z jiné třídy zvané podtřída nebo třída dědice.