Middle
Hogyan hívod meg az A osztály minden metódusát?
sobes.tech MI
Válasz az MI-től
Tegyük fel, van egy A osztályunk metódusokkal:
import time
class A:
def what_time(self):
return f'{time.time()}'
@property
def useless_getter(self):
return self.text
def __private_or_public(self):
return 1
def __str__(self):
return self.text
def __init__(self, text):
self.text = text
Az összes metódus meghívásához:
-
what_time— normál metódus, példányon keresztül hívható:a = A('szia') print(a.what_time()) -
useless_getter— tulajdonság, szögletes zárójelek nélkül hívható attribútumként:print(a.useless_getter) -
__private_or_public— dupla alsó vonallal ellátott metódus, a neve változik (name mangling), így hívható:print(a._A__private_or_public()) -
__str__— speciális metódus, automatikusan hívódik szöveggé alakításkor:print(str(a))
Tehát, a dupla alsó vonallal ellátott privát metódus hívásához a névhez a osztály nevét kell hozzáfűzni: _A__private_or_public().