Python OOP-ok: Osztály, Objektum, Öröklődés és Konstruktor

⚡ Okos összefoglaló

Objektumorientált programozás Python A kódot osztályok és objektumok köré szervezi, összefogva a kapcsolódó adatokat és viselkedéseket. Ez a megközelítés bemutatja, hogyan definiálhatunk osztályokat, hozhatunk létre objektumokat, alkalmazhatunk öröklődést és inicializálhatunk attribútumokat konstruktorokkal.

  • 🔘 Osztály tervrajza: Egy osztály a kapcsolódó adatokat és metódusokat egy újrafelhasználható tervrajzba csoportosítja objektumok létrehozásához.
  • ☑️ tárgyak: Az objektumok egy osztály példányai, amelyek mindegyike saját attribútumértékeket tárol.
  • Osztályok meghatározása: A class kulcsszó, a behúzott metódusok és a self paraméter definiál egy Python osztály.
  • 🧬 Öröklés: Egy származtatott osztály örökli az attribútumokat és metódusokat az alaposztálytól, és támogatja a többszörös öröklődést.
  • 🇧🇷 Kivitelezők: Az __init__() metódus minden új objektumot előre definiált értékekkel inicializál.
  • 🤖 Mesterséges intelligencia relevanciája: Gépi tanulási könyvtárak, mint például a PyTorch modell rétegek és hálózatok mint Python osztályok.

Python OOP-ok: Osztály, Objektum, Öröklődés és Konstruktor

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 logikus alapping adatok és függvények. Szabadságot ad olyan adatstruktúrák 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útum, például a tranzakció részletei, 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. metódust, amely kinyomtatja a következőt:Guru99.”
  • 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 önargumentum magára az objektumra utal. Innen ered a „self” szó használata. Tehát ebben a metódusban a „self” az objektum azon konkrét példányára fog hivatkozni, amelyen a művelet történik.
  • 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 method1-et vagy a method2-t, nem kell megadnunk a self kulcsszót. Ezt a metódus automatikusan kezeli számunkra. 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.

Hogyan működik az öröklődés a Python

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

Figyeljük meg, hogy a childClass-ban a method1 nincs definiálva, hanem a szülő myClass-ból származik. A kimenet: „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 a myClass.method1(self) függvényt hívjuk meg, és GuruA 99-es szám a várt módon kerül kinyomtatásra

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ásjellel (_) kezdődik. Ez a __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, 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

GYIK

Az osztály egy tervrajz, amely attribútumokat és metódusokat definiál, míg az objektum egy konkrét példány, amely az adott osztályból épül fel. Egy osztály sok objektumot hozhat létre, mindegyik megtartjaping a saját adatait.

Python Az objektumorientált programozás négy pilléren nyugszik: enkapszuláció (adatok metódusokkal való összekapcsolása), absz.tracció (a komplexitás elrejtése), öröklődés (egy alaposztály újrafelhasználása) és polimorfizmus (egy interfész, sok forma).

Az osztályváltozókat az osztály törzsén belül deklaráljuk, és minden példány megosztja őket. A példányváltozók az __init__-on belül kerülnek értékadásra a self használatával, és csak egyetlen objektumhoz tartoznak.

A super() függvény egy proxyt ad vissza a szülő osztálynak, lehetővé téve, hogy egy gyermek meghívja a szülő metódusokat vagy konstruktort anélkül, hogy közvetlenül elnevezné azokat. Gyakran super().__init__() alakban írják az örökölt attribútumok inicializálásához.

Az enkapszuláció korlátozza a közvetlen hozzáférést egy objektum belső adataihoz. Python, egyetlen aláhúzásjellel (_name) illesszen be egy attribútumot védettként, vagy dupla aláhúzásjellel (__name) névmanipuláció esetén.

Igen. A Python Az osztály több szülőtől is örökölhet, például a Child(A, B) osztály. Python A metódusok ismétlődő neveit a metódusfeloldási sorrend (MRO) segítségével oldja fel, amelyet az mro() metódus vizsgál.

Az objektumorientált programozás központi szerepet játszik a mesterséges intelligencia és a gépi tanulási keretrendszerekben. Az olyan könyvtárak, mint a PyTorA ch és a scikit osztályokként tanulja meg a modellhálózatokat, rétegeket és becslőket, így azokat alosztályozhatja és újra felhasználhatja modellek felépítéséhez.

Igen. A GitHub Copilot és a mesterséges intelligencia asszisztensek generálják Python osztályok, konstruktorok és öröklődés egy rövid promptból. Automatizálják az ismétlődő sablonos műveleteket, bár érdemes átnézni a kimenetet a helyes logika érdekében.

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