Home
» Power BI
»
Mi az én a Pythonban: valós példák
Mi az én a Pythonban: valós példák
Amikor Python nyelven ír osztályokat, gyakran találkozhat az 'self.'Ez egy kulcsfontosságú fogalom, amelyet a kezdőknek meg kell érteniük, amikor mélyebbre merülnek a Python programozási nyelv objektumorientált funkcióiban.
A selfparaméter egy osztály aktuális példányára vonatkozik. Használhatja az adott osztályhoz tartozó attribútumok és metódusok elérésére.
Ebben a Python-oktatóanyagban megvizsgáljuk, hogy a selfváltozó hogyan játszik kulcsszerepet a Python-osztályokban. Azt is megmutatjuk, hogyan tarthatja fenn a kód tisztaságát, modularását és újrafelhasználhatóságát a használatával self.
A Python egy objektum-orientált programozási (OOP) nyelv, amely nagymértékben támaszkodik osztályokra és objektumokra. Tehát, mielőtt belemerülnénk a selfparaméterbe, először meg kell értenünk, mi az objektumorientált programozás.
Az objektum-orientált programozás segíti a programozókat, hogy valós fogalmakat és kapcsolatokat modellezzenek osztályok és objektumok használatával. Ez strukturáltabb, újrafelhasználhatóbb és méretezhető kódot eredményez.
Gondoljon egy osztályra mint sablonra előre meghatározott tulajdonságokkal és metódusokkal rendelkező objektumok létrehozásához. Ezenkívül egy objektum egy osztály példánya, amely az attribútumokhoz saját értékeit tárolja, és hozzáféréssel rendelkezik az osztályfüggvényekhez.
Ez a két koncepció számos alkalmazás fontos építőköve. Ebben a videóban mind az osztályokat, mind az objektumokat láthatja, hogyan hozhat létre adatokat a Python Faker Library segítségével.
A Python Self szerepe
Selfhivatkozás az osztály Python-beli példányára. Lehetővé teszi egy osztály attribútumainak és metódusainak elérését és módosítását saját hatókörén belül.
selfÍme néhány kulcsfontosságú pont a Python használatához :
Selfnem foglalt kulcsszó a Python szintaxisban . Más neveket is használhat az osztálypéldányok azonosítására, de selfez a Python programozók által legszélesebb körben használt és elfogadott konvenció.
Selfa példánymetódusok első paramétereként használják az osztály aktuális példányára való hivatkozáshoz.
Segítségével különbséget tehet selfa példányattribútumok és a helyi változók között, így a kód olvashatóbbá és kevésbé hibás.
Példánymetódus meghívásakor a Python automatikusan a példányt adja át első paraméterként.
A paramétert deklarálnia kell selfa konstruktorban __init__()és az osztály minden további függvénykonstruktorában. Ennek elmulasztása esetén a program egy typeerror.
Az alábbiakban láthat egy példát erre a hibára:
class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given
Megjegyzés:self A Python 3 által biztosított statikus metódus funkció segítségével megkerülheti a paramétert a függvényekben. Ezzel egy későbbi részben részletesebben is kitérünk.
Önmagunkkal való munka
A használat megtanulása selfnagyon fontos a Python osztályok felépítéséhez. Ebben a részben megtudhatja, hogyan kell használni a selfkülönböző forgatókönyvekben, amikor osztályokkal és objektumokkal dolgozik.
Objektumok inicializálása a '__init__()' paraméterrel
Egy osztály új példányának létrehozásakor a __init__()metódus meghívásra kerül az objektum attribútumainak inicializálására. A __init__()metódus az osztálykonstruktor, és a self paramétert veszi első argumentumnak.
A selfparaméter ezen a metóduson belül a példányattribútumok adott argumentumokhoz való társítására szolgál.
Íme egy példa:
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)
Ebben a példában a metódus az objektum inicializálása során a , és paramétereket használja . A paraméter az osztálypéldányra vonatkozik, lehetővé téve a és attribútumok beállítását a létrehozandó objektumhoz.init selfnameageselfnameage
Self használata a módszerekben
Amikor egy osztályban példánymetódusokat definiál, selfelső paraméterként kell megadnia. Ez lehetővé teszi az osztályon belüli példányattribútumok és egyéb metódusok elérését.
Bővítsük ki az előző példát:
class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()
Ebben a példában a introduce()metódus selfelső paramétereként szerepel. Ez lehetővé teszi az objektum nevének és korának attribútumainak elérését, valamint személyre szabott bemutatkozás létrehozását.
A kódban szereplő metódus meghívásakor nem kell selfkifejezetten átadnia a paramétert. A Python automatikusan gondoskodik róla.
Ha követi ezeket az irányelveket, és megérti az in célját self, a kezdők hatékonyan dolgozhatnak osztályokkal és objektumokkal. Ezzel jól strukturált kódot hozhatnak létre, amely könnyen olvasható és karbantartható.
Gyakori önhasználati esetek
Sokféleképpen használhatja a kulcsszót a Python-kódban. Ha megérti ezeket a használati eseteket, akkor képes lesz hatékonyan használni a programjaiban.self self
Nézzünk ezek közül néhányat:
Osztályattribútumok elérése
Az egyik elsődleges felhasználási terület selfaz osztályon belüli példányattribútumok elérése. A példányattribútumok az osztályból létrehozott objektumra jellemzőek, és az objektum adatait tárolják.
A használat selflehetővé teszi ezen attribútumok kezelését vagy elérését az osztálymetódusokon belül. Nézzünk egy példát:
class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)
Ebben a példában self a Dog objektum name attribútumait használtuk a display_namemetóduson belül.
Osztálymódszerek hívása
Egy másik gyakori felhasználási eset selfmás osztálymetódusok meghívása egy példánymetóduson belül. Ez lehetővé teszi a kód újrafelhasználását, csökkenti a bonyolultságot és javítja az olvashatóságot.
Elengedhetetlen, selfha más metódusokra hivatkozik, mivel ez biztosítja, hogy a megfelelő metódus kerüljön meghívásra az adott példányhoz. Tekintsük a következő példát:
class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)
A fenti példában a metódust a metóduson belülről selfhívjuk . Ez lehetővé teszi, hogy egyetlen hívásban megjelenítsük a madár faját és színét.show_speciesshow_info
Végül ne felejtse el használni selfa példányattribútumok elérésekor és az osztálymetódusok hívásakor. Ha megérti ezeket a használati eseteket, képes lesz hatékonyabb és szervezettebb Python-kódot írni.
Legjobb saját gyakorlatok
Amikor ezekkel dolgozik, self,be kell tartania néhány konvenciót, hogy elkerülje a kóddal kapcsolatos problémákat és hibákat. Itt van néhány közülük.
Hol használjuk Önmagunkat
A példánymetódusok meghatározásakor mindig a selfparamétert használja első paraméterként. Ez lehetővé teszi az objektum példányattribútumainak elérését és módosítását, valamint az osztályon belüli más példánymetódusok meghívását.
Fontos használni, selfamikor objektumpéldányokkal dolgozik Pythonban. Használata konzisztens viselkedést biztosít, és lehetővé teszi az objektumok megfelelő beágyazását.
Vegyük például a következő osztályt:
class MyClass: def __init__(self, my_var): self.my_var = my_var
Itt a self paramétert használják a metódusban az objektumpéldány attribútumának __init__inicializálására . my_varIly módon példányspecifikus attribútummá válik.my_var
Ennek eredményeként az osztály más metódusaiban az önhivatkozás használatával elérhető és módosítható.
Elnevezési konvenciók önmaga számára
Bár selfa Pythonban a példány hagyományos neve, technikailag bármilyen nevet használhat. Mindazonáltal erősen ajánlott, hogy ragaszkodjon a self használatához az egyértelműség és a tágabb Python közösséggel való összhang érdekében.
Más név használata zavart okozhat a kódot olvasókban és azzal dolgozókban, különösen, ha hozzászoktak a Python-könyvtárak szabványos elnevezési konvencióihoz.
Hol ne használja önmagunkat
Azt már tudjuk, hogy a selfparaméter hozzáférést biztosít az objektumpéldányhoz. Bizonyos esetekben azonban előfordulhat, hogy az osztály egyes függvényei nem igényelnek hozzáférést az objektumpéldányhoz.
Ebben a forgatókönyvben nincs szükség a self paraméterre. Tehát a Python statikus metódusfunkciót biztosít az önparaméter megkerülésére:
Íme egy példa:
class Car: @staticmethod def print_car(): print('Vroom Vroom')
A fenti példában a @staticmethodfüggvénydekorátor felülírja selfa metódus paraméterkövetelményét. Így a függvény akkor is futni fog, ha nincs átadva objektumpéldány.
Következtetés
Összefoglalva, a Python saját paramétere egy osztály példányára vonatkozik, és lehetővé teszi az attribútumok és metódusok elérését. Python fejlesztőként fontos megérteni az én célját és használatát az osztályokban és objektumokban.
A saját kódjának következetes használatával elősegíti az olvashatóságot és a karbantarthatóságot, ami javítja munkája általános minőségét.
"self"Ne feledje továbbá, hogy bár a Pythonban gyakran találkozhat a kifejezéssel , ez nem egy fenntartott Python kulcsszó. Ez eltér az olyan programozási nyelvektől, mint a Javascript és a Java , ahol "this" egy fenntartott kulcsszó.
Az osztálymetódus első paraméterét tetszés szerint nevezheti el; A „ self” csak az előnyben részesített egyezmény.
Ön kulcsszó a Pythonban?
Van egy kérdés, amely mindig a Python programozói között lebeg. A self valóban kulcsszó a Pythonban?
Eltérően más programozási nyelvektől, például a C++-tól, ahol a self kulcsszónak számít, a Pythonban ez egy konvenció, amelyet a programozók általában követnek. Ez alapvetően egy paraméter a metódusdefinícióban. Használhat azonban bármilyen más nevet az én helyett, például egy másik vagy én vagy bármi más egy metódus első paramétereként. Egy másik ok, amiért a legtöbb ember ezt javasolja, az, hogy javítja a kód olvashatóságát.
Lássunk egy példát, hogy megértsük:
class myClass: def show(anther): print ("egy másik használatos a self helyett")
Ha összehasonlítja ezt a kódot a Python osztály önkonstruktorának kódjával, észre fogja venni, hogy itt a nevet egy másik ban használtuk. helye én. Most hozzunk létre egy objektumot ebből az osztályból, és nézzük meg a kimenetet:
object = myClass() object.show()
Látható, hogy a program akkor is működik, ha az én változó helyett más nevet használunk. Pontosan ugyanúgy működik, mint az önváltozó.