Python OOP: Třída, Objekt, Dědičnost a Konstruktor s Příkladem

Obsah:

Anonim

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.