Python OOP: osztály, objektum, öröklés és konstruktor példával

OOP be Python

OOP be Python egy olyan programozási megközelítés, amely az objektumok és osztályok használatára összpontosít, ugyanúgy, mint a többi általános programozási nyelv. Az objektumok tetszőleges valós világbeli entitások lehetnek. Python lehetővé teszi a fejlesztők számára, hogy az OOPs megközelítést használó alkalmazásokat fejlesszenek, főként a kód újrafelhasználhatóságára összpontosítva. Nagyon könnyű osztályokat és objektumokat létrehozni Python.

Mi az az osztály?

Egy osztályban Python adatok és függvények logikai csoportosítása. Szabadságot ad olyan adatszerkezetek létrehozására, amelyek tetszőleges tartalmat tartalmaznak, és így könnyen hozzáférhetők.

Például bármely banki alkalmazott, aki online szeretné lekérni az ügyfél adatait, a címre megy vásárlói osztály, ahol az összes attribútuma, például a tranzakció adatai, a kifizetési és befizetési adatok, a fennálló tartozás stb. szerepelne.

Hogyan határozzuk meg Python osztályok

Az osztály meghatározásához figyelembe kell venni a következő szempontokat

Step 1) In Python, az osztályokat a "Osztály" kulcsszó

class myClass():

Step 2) Az osztályokon belül meghatározhat olyan függvényeket vagy metódusokat, amelyek ennek az osztálynak a részét képezik

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Itt definiáltuk az 1. módszert, amely kiírja a „Guru99” kifejezést.
  • Egy másik, általunk definiált módszer a 2. módszer, amely kiírja a „Software Testing”+ SomeString szöveget. A SomeString a hívási metódus által biztosított változó

Step 3) Az osztályban minden behúzott, csakúgy, mint a kód a függvényben, ciklusban, if utasításban stb. Ami nincs behúzva, az nincs az osztályban

Határozza Python osztályok

JEGYZET: Az „én” használatáról Python

  • Az önérv magára a tárgyra vonatkozik. Innen ered az én szó használata. Tehát ezen a metóduson belül a self ennek az objektumnak a kezelt példányára fog hivatkozni.
  • Az Self a megegyezés szerint preferált név Pythons a példánymetódusok első paraméterének jelzésére Python. Ez része a Python szintaxis az objektumok tagjainak eléréséhez

Step 4) Az osztály tárgyává tenni

c = myClass()

Step 5) Metódus meghívása egy osztályban

c.method1()
    c.method2(" Testing is fun")
  • Figyeljük meg, hogy amikor meghívjuk a metódus1 vagy a metódus2, nem kell megadnunk a saját kulcsszót. Ezt automatikusan kezeli számunkra a Python futási idő.
  • Python A futási idő „self” értéket ad át, amikor meghív egy példánymetódust a példányon, függetlenül attól, hogy szándékosan adja meg vagy sem
  • Csak a nem ön-érvekkel kell törődnie

Step 6) Itt a teljes 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()

Hogyan működik az öröklés

Az öröklődés az objektumorientált programozásban használt szolgáltatás; egy új osztály definiálására vonatkozik, egy meglévő osztályon kevesebb vagy egyáltalán nem módosítva. Az új osztály ún származtatott osztály és amelyiktől örököl, az úgynevezett bázis. Python támogatja az öröklést; az is támogatja többszörös öröklődés. Egy osztály örökölhet attribútumokat és viselkedési módszereket egy másik osztálytól, amelyet alosztálynak vagy örökös osztálynak neveznek.

Határozza Python osztályok

Python Öröklődési szintaxis

class DerivedClass(BaseClass):
    body_of_derived_class

Step 1) Futtassa a következő kódot

# 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()

Figyelje meg, hogy a childClass-ban a metódus1 nincs megadva, de a szülő myClass-ból származik. A kimenet a „Guru99”.

Step 2) 8. és 10. sor megjegyzésének törlése. Futtassa a kódot

Most az 1. metódus definiálva van a childClass-ban, és a „childClass Method1” kimenet helyesen jelenik meg.

Step 3) Megjegyzés: 9. sor. Futtassa a kódot

A szintaxis segítségével meghívhatja a szülőosztály metódusát

ParentClassName.MethodName(self)

Esetünkben hívjuk, myClass.method1(self) és a Guru99 a várt módon kinyomtatott

4 lépés) Megjegyzés: 19. sor. Futtassa a kódot.

A gyermekosztály 2. metódusa meghívásra kerül, és a várt módon a „childClass method2” kinyomtatásra kerül.

Python Kivitelezők

A konstruktor egy osztályfüggvény, amely egy objektumot előre definiált értékekre példányosít.

Dupla aláhúzással (_) kezdődik. Ez __init__() metódus

Az alábbi példában a felhasználó nevét vesszük a konstruktor segítségével.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

A kimenet a következő lesz:

Üdvözöljük a Guru99-ben, Alex

Python 2 Példa

A fenti kódok Python 3 példa, Ha be akarsz futni Python 2 Kérjük, vegye figyelembe a következő kódot.

# 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()

Ismerje meg a következő oktatóanyagunkat Polimorfizmus be Python

Összegzésként

Az „osztály” a funkciók és adatok logikai csoportosítása. Python osztály biztosítja az objektum-orientált programozás összes szabványos funkcióját.

  • Osztály öröklődési mechanizmus
  • Származtatott osztály, amely felülírja az alaposztály bármely metódust
  • Egy metódus meghívhatja egy azonos nevű alaposztály metódusát
  • Python Az osztályokat kulcsszó határozza meg "osztály" maga
  • Az osztályokon belül definiálhat olyan függvényeket vagy metódusokat, amelyek az osztály részét képezik
  • Az osztályban minden behúzott, csakúgy, mint a kód a függvényben, ciklusban, if utasításban stb.
  • Az önérv benne Python magára a tárgyra vonatkozik. Az Self a megegyezés szerint preferált név Pythons a példánymetódusok első paraméterének jelzésére Python
  • Python A futási idő automatikusan átadja az „self” értéket, amikor meghív egy példánymetódusot a példányban, függetlenül attól, hogy szándékosan adja meg, vagy sem
  • In Python, egy osztály örökölhet attribútumokat és viselkedési módszereket egy másik osztálytól, amelyet alosztálynak vagy örökös osztálynak neveznek.

Foglald össze ezt a bejegyzést a következőképpen: