Middle
Ako zavolať každý z metód triedy A?
sobes.tech AI
Odpoveď od AI
Predpokladajme, že máme triedu A s metódami:
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
Na volanie každej metódy:
-
what_time— bežná metóda, volá sa cez inštanciu:a = A('ahoj') print(a.what_time()) -
useless_getter— vlastnosť, volá sa ako atribút bez zátvoriek:print(a.useless_getter) -
__private_or_public— metóda s dvojitým podčiarknutím, názov sa mení (name mangling), na volanie:print(a._A__private_or_public()) -
__str__— špeciálna metóda, volá sa automaticky pri konverzii na reťazec:print(str(a))
Preto, na volanie súkromnej metódy s dvojitým podčiarknutím, je potrebné použiť názov s triedou: _A__private_or_public().