Objektumorientált nyelvben az osztály egy kibontható kódrészlet, amely sablont képvisel az adott osztály objektumainak létrehozásához és használatához. Egy osztály objektuma egyszerűen a megadott osztály példányára utal.

Python osztály alapjai

A Python programozási nyelvben minden adat egy osztály példányaként jelenik meg. Ha még nem ismeri a nyelvet, olvassa el a mi oldalunkat kezdő útmutató a Pythonhoz mielőtt továbblépne.

Az osztály egy viselkedéskészletet biztosít tagfüggvények formájában (más néven módszerek), amelyek megvalósításai közösek a az osztály összes példánya, és ez határozza meg azt is, hogy a példányának állapotinformációja miként jelenik meg attribútumok.

Olvass tovább: Osztályos módszerek a Pythonban: A fontos különbségek

Az alábbi kód egy meghatározott osztályt mutat be a Pythonban. A kódban definiált osztály biztosítja a RaceCar osztály megvalósítását.

Az osztály minden példánya egyszerű modellt biztosít a különböző márkájú autók számára, és a következő állapotot tartalmazza - információ: az autó neve, a sofőr neve, az autó rendszáma, az aktuális sebesség, a gyorshajtás díja és szín.

instagram viewer

Ez az autóosztály minden autóhoz külön érzékelőt modellez, amely 50 dolláros bírságot von maga után az autó vezetőjével szemben, ha túllépi a törvényes 140 mérföld / órás sebességhatárt.

Példa osztályra (autóosztály)


osztályú autó:
#Konstruktőr
# Az init módszer felelős az osztály # változóinak értékeinek inicializálásáért.
def __init __ (saját, autó_név, illesztőprogram_neve, jogosítvány_szám,
jelenlegi_sebesség, sebességtúllépés, szín):
self.car_name = car_name
self._driver_name = illesztőprogram_neve
self._license_plate_number = licenc_plate_number
self._current_speed = aktuális_sebesség
self._speeding_charge = sebességtúllépés
ön._szín = szín
#Accessor módszerek
# A get_car_name metódus visszaadja az autó nevét
def get_car_name (self):
adja vissza self._car_name
# A get_driver_name metódus visszaadja az illesztőprogram nevét
def get_driver_name (saját):
adja vissza self._driver_name
# A get_license_plate metódus visszaadja az autó rendszámát
def get_license_plate (self):
return self._license_plate
# A get_current_speed metódus visszaadja az autó aktuális sebességét # mozog
def get_current_speed (self):
return self._current_speed
#A get_speeding_charge módszer a teljes pénzösszeget adja vissza
A #driver-nek fizetnie kell a túlhajtásért
def get_speeding_charge (self):
return self._speeding_charge
# A get_colour metódus visszaadja édes menetünk színét!
def get_colour (self):
visszatér self._colour
#Mutátor módszerek
# A set_driver érték megváltoztatja autónk vezetőjét.
def set_driver (self, new_driver):
self._driver_name = new_driver
# A gyorshajtási módszer biztosítja, hogy a sofőr 50 dollárt számoljon fel, amikor # 140 mérföld / órás sebességet meghaladó sebességet fogott el :(
def speeding_ticket (self, current_speed):
ha a jelenlegi_sebesség <= 140:
return False
más:
ön._sebesség_töltés + = 50
return True
# A make_payment módszer biztosítja, hogy a sofőr képes legyen megfizetni az összes # összeget, amellyel tartozik a gyorshajtási jegydíjakért.
def make_payment (saját, összeg_fizetett):
self._speeding_charge - = összeg_fizetett

A Python osztály példájának magyarázata

Az "én" paraméter

Először is vegye figyelembe, hogy különbség van az osztályban deklarált metódus aláírás és a metódus aláírás között, amelyet a programozó használ a függvény meghívására. Például a get_colour osztályban meghatározott módszer egy paramétert vesz fel, amely az „én” paraméter.

Amikor azonban a programozó ezt a módszert meghívja az osztály egyik példányára, nem ad meg paramétereket. Ugyanez a jelenség figyelhető meg a speeding_ticket módszerben is, amely az osztály két paraméterének felvételére van definiálva (azaz saját és current_speed), de a programozó képes végrehajtani ezt a módszert úgy, hogy csak a 'current_speed' értékét adja meg paraméter.

Ennek az az oka, hogy a megadott „én” paraméter célja, hogy a metódust az objektumpéldányhoz kösse, amelyre meghívták, és ez nem a programozó által megadandó érték.

A kivitelező

Az osztály konstruktora az osztály azon módszerére utal, amelyet a felhasználó meghívhat az osztály objektum példányának létrehozására. A Car osztályban a felhasználó létrehozhat egy objektumpéldányt a következő szintaxis használatával:

# saját Bugattink létrehozása :)
Autó („Bugatti”, „David Sasu”, 90828, 0, 0, „Cherry Red”)

Ennek a kódnak a végrehajtása a __init__ metódus meghívását eredményezi az Autó osztályban. Ennek a módszernek a feladata egy újonnan létrehozott hitelkocsi objektum létrehozása a megadott példányértékekkel. A Car osztály minden objektuma hat példányváltozóból áll, amelyek:

  • _ autó_név
  • _vezető_neve
  • _rendszámtábla
  • _pillanatnyi sebesség
  • _sebesség_ töltés
  • _szín

Hozzáférési módszerek

Ezek olyan módszerek, amelyeket egy objektumpéldány állapotinformációinak elérésére írnak. A Car osztályban a következő módszereket írták:

  • get_car_name
  • get_driver_name
  • get_license_plate
  • get_current_speed
  • get_speeding_charge
  • get_colour

Mutációs módszerek:

Ezek olyan módszerek, amelyeket az objektumpéldány állapotinformációinak megváltoztatására írnak. A Car osztályban a mutációs módszereket írták:

  • set_driver
  • gyorshajtás_jegy
  • kifizetni

A kapszulázás fogalma

A „beágyazás” olyan kifejezés, amelyet az objektum-orientált tervezés elvének leírására használnak, ahol a program összetevőinek nem szabad feltárniuk a megvalósításuk belső részleteit. A kapszulázás fogalmának megértése érdekében olvassa el a mi oldalunkat cikk a kapszulázásról.

Hiba az ellenőrzés során

A Car osztály megvalósítása nem robusztus, mivel valószínűleg összeomlik vagy meghibásodik, attól függően, hogy a programozótól milyen bemenetet kap.

Először is vegye figyelembe, hogy nem ellenőrizzük a speeding_ticket és a make_payment módszer paramétereinek típusait, és nem ellenőrizzük a konstruktor egyik paraméterének típusát sem. Ez a program összeomlásához vezethet, ha a felhasználó olyan érvet ad meg, amelyre nem számítottak. Például, ha a felhasználó olyan hívást kezdeményez, mint például a speeding_ticket ("chip ahoy"), a program összeomlik, mert a módszer által várt típus egész szám volt, és nem karakterlánc.

Most már megérted a Python osztály alapjait

Ebben a cikkben megismerkedtél a Python osztály és a Python osztály objektum fogalmával. Ismerkedtetek olyan ötletekkel is, amelyekre a python osztály épül, mint például: kapszulázás, „én” azonosító, hozzáférési módszerek és mutátoros módszerek.

Ezen információk birtokában képesnek kell lennie arra, hogy önállóan létrehozzon egy egyszerű Python osztályt, és tesztelje :)

Email
A WhatsApp kényszeríti a biometrikus hitelesítést az asztali és a webes hozzáférésre

Most a mobileszközön keresztül igazolnia kell személyazonosságát, hogy összekapcsolhassa fiókját az asztali számítógépen és a webalkalmazásban.

Kapcsolódó témák
  • Programozás
  • Piton
A szerzőről
David Sasu (1 cikk megjelent)Többet David Sasutól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.