Ez a cikk segít az olvasónak megérteni az alapvető Python osztályokat, valamint néhány alapvető alkalmazást a valóságban. A Visual Studio Code-ot fogjuk használni kódeditorunként. Ha még nem telepítetted a Visual Studio Code-ot, az utasításokat az első blogban találod.

Python osztályok és objektumok – tartalomjegyzék:

  1. Python osztályok
  2. Python osztályok – definíció
  3. Python osztályok inicializálása
  4. Írjuk meg első Python osztályunkat
  5. Attribútumok
  6. Az osztály viselkedése
  7. Objektumok a Pythonban
  8. Öröklődés

Python osztályok

Ahogy az első blogban megbeszéltük, a Python egy objektum-orientált programozási nyelv. Három kifejezés nagyon fontos az objektum-orientált programozás megbeszélésekor a Pythonban. Az első a osztály, a második egy objektum, a harmadik pedig az öröklődés. Kezdjük azzal, hogy mi az osztály.

Python osztályok – definíció

Az osztály egy tervrajz vagy egy bővíthető program, amely segít az objektumok létrehozásában. Az osztály viselkedése és állapota van. Az osztály viselkedését a osztályon belüli függvények, amelyeket metódusoknak hívunk, mutatják be. Az osztály állapotát a osztályon belüli változók, amelyeket attribútumoknak hívunk, mutatják be.

Python osztályok inicializálása

Az osztály inicializálása a következő szintaxissal történhet.

Az osztály a Pythonban a “class” kulcsszóval van definiálva, amelyet az osztály neve követ. A Python függvény alapvető szintaxisa az alábbiakban látható.

Például:

<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" />
# Hozzunk létre egy függvényt
# osztály Monkey
class classname:

Megjegyzés: az osztály neve ugyanazokat a normákat követi, mint a változó deklaráció.

Írjuk meg első Python osztályunkat

# első osztály

class Animals:
	pass

A fenti kódrészletben írtunk egy osztályt, amelyet tovább fogunk fejleszteni a blogban. Ahogy láthatod, használtuk a “class” kulcsszót.

Most nézzük meg, hogyan adhatunk hozzá komponenseket az állatok osztályához. De előtte tanuljuk meg a “__init__()” konstruktort. A konstruktorokat objektumok példányosítására használják. Itt a __init__() az objektumok példányosítására szolgál. A konstruktor lehet alapértelmezett, csak self-vel mint argumentummal, vagy paraméterezett a szükséges argumentumokkal.

Attribútumok

Két különböző típusú attribútum létezik, az első a osztályváltozók, a második pedig az példányváltozók. Az osztályváltozók azok a változók, amelyek az osztályhoz tartoznak. Ezek a változók minden osztálypéldány számára elérhetők. Ezért az értékük nem változik, még akkor sem, ha az példány változik.

# osztályváltozók

class Animals:
	type=”mammals”

A példányváltozók azok a változók, amelyek magukhoz a példányokhoz tartoznak. Ezért az értékük megváltozik, ahogy a példány változik.

# osztályváltozók

class Animals:
	def __init__(self,legs):
		self.legs=legs
		

Megjegyzés: A példányváltozók nem érhetők el az osztály neve alapján, mert az értékük az objektumhoz való hozzáférés függvényében változik.

Készítsünk egy programot, amelyben mind az osztály-, mind a példányváltozók deklarálva vannak.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs

A fenti programban mind a példány-, mind az osztályváltozókat használtuk. Így ezek a változók az osztály attribútumait alkotják.

Az osztály viselkedése

Ahogy megbeszéltük, az osztály viselkedését az osztályon belüli metódusok határozzák meg. De mielőtt a viselkedésről beszélnénk, meg kell kezdenünk a “self” paraméter megbeszélését, amelyet a __init__() -ban használtunk.

Self:

Egyszerűen fogalmazva, amikor bármit a self-hez csatolunk, az azt jelenti, hogy a változó vagy függvény az osztályhoz tartozik. A “self” segítségével az osztály attribútumai vagy metódusai elérhetők.

Metódusok:

Az osztály metódusai olyan függvények az osztályon belül, amelyek első argumentuma “self”. Az osztályon belüli metódus a “def” kulcsszóval van definiálva.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)

A fenti “bark” metódusban, mivel a name változót használjuk, amely egy példányváltozó, a “self” segítségével érjük el, és ez a függvény csak akkor nyomtatja ki a “woof woof!!!” üzenetet, ha az objektumnak megadott név kutya.

Megbeszéltük az osztály legtöbb összetevőjét, de lehet, hogy azon gondolkodsz, hogyan láthatjuk, hogy az osztály működik. A válasz az, hogy amíg nem hozunk létre egy osztály objektumot, nem fogjuk látni, mit csinál az osztály. Most definiáljuk és hozzunk létre egy objektumot az osztályból.

Objektumok a Pythonban

Az objektum az osztály egy példánya. Az osztály csak egy tervrajz, de az objektum az osztály egy példánya, amelynek valós értékei vannak.

Az objektum definiálásának vagy létrehozásának kódja az alábbiakban látható.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)

dog=Animals(“dog”,4)

Objektum létrehozásához a szintaxis az objectname=classname(arguments). Így itt a kutya nevét adjuk meg, és a lábak számát 4-nek. Most, hogy az osztály objektuma létrejött, a következő lépés az, hogy az objektumot használva hozzáférjünk az attribútumaihoz. Az osztály attribútumaihoz való hozzáféréshez az objektum használatával csak a példányváltozók érhetők el. Az osztályunk példányváltozói a name és a legs.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)

dog=Animals(“dog”,4)
print(dog.name)
print(dog.legs)

Ahogy láthatjuk, a példányváltozókhoz a pontszintaxissal tudunk hozzáférni.

Nézzük meg a kimenetet.

#Kimenet

dog
4

Az osztályon belüli függvényekhez vagy metódusokhoz való hozzáféréshez a pontszintaxist fogjuk használni. Az alábbi példa ezt illusztrálja.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)

dog=Animals(“dog”,4)
print(dog.name)
print(dog.legs)
print(dog.bark())

#Kimenet

dog
4
woof woof!!!

A fenti példában láthatjuk, hogy a “bark” osztálymetódust a létrehozott kutya objektumon keresztül érjük el. Láthatjuk, hogy a függvény argumentumaiban nem használjuk a “self” paramétert. Ennek az az oka, hogy kívül az osztályon nem szükséges a “self” használata, mivel az objektum maga működik, mint self.

Öröklődés

Az öröklődés egy folyamat, amelyen keresztül az osztály attribútumai és metódusai átadhatók egy gyermekosztálynak. Az osztály, ahonnan a gyermekosztály örököl, a szülőosztály. Az öröklődés szintaxisa az alábbiakban látható.

#Öröklődés

class parent:

class child(parent):

A fenti ábrázolásból láthatjuk, hogy az öröklődés szintaxisához a szülőosztály nevét argumentumként adjuk meg a gyermekosztálynak. Használjuk az Animals osztályt, és készítsünk egy gyermekosztályt, amely kutya. Ezt az alábbiakban illusztráljuk.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)

class Dog(Animals):
	def __init__(self,name,legs,breed):
		Animals.__init__(self,name,legs)
		self.breed=breed

A fenti példa kódban létrehoztunk egy kutya osztályt, amely kiterjeszti az előzőleg létrehozott állatok osztályt. Az Animals.__init__(arguments) segítségével használjuk az Animals osztály paramétereit, amelyek a név és a lábak, amelyeket a kutya osztály örököl. Ezután létrehozunk egy példányattribútumot a kutya osztály számára, amely a fajta.

Most készítsünk egy objektumot a kutya osztályhoz, és érjük el az állatok osztály attribútumait és metódusait.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)

class Dog(Animals):
	def __init__(self,name,legs,breed):
		Animals.__init__(self,name,legs)
		self.breed=breed

pug=Dog("dog",4,"pug")
pug.breed
pug.name
pug.legs
pug.bark()

#Kimenet

pug
dog
4
woof woof!!!

Ahogy a kimenetből látható, a szülőosztály attribútumai és metódusai a gyermekosztály objektumán keresztül elérhetők.

Ebben a blogban a Pythonban az osztályok alapjait tárgyaltuk Python. A következő blogbejegyzésben a fájlkezelés témáját fogjuk tárgyalni.

python_classes

Érdemes megnézni a JavaScript tanfolyamunkat kezdőtől a haladóig.

Robert Whitney

JavaScript szakértő és oktató, aki IT osztályokat mentorál. Fő célja, hogy növelje a csapat termelékenységét azáltal, hogy megtanítja másoknak, hogyan működjenek együtt hatékonyan a kódolás során.

View all posts →