Middle
Kako pozvati svaki od metoda klase A?
sobes.tech АИ
Одговор од АИ
Pretpostavimo da imamo klasu A sa metodama:
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
Da bismo pozvali svaku metodu:
-
what_time— obična metoda, poziva se putem instance:a = A('zdravo') print(a.what_time()) -
useless_getter— svojstvo, poziva se kao atribut bez zagrada:print(a.useless_getter) -
__private_or_public— metoda sa dvostrukim donjim crtom, ime se menja (name mangling), da bi se pozvalo:print(a._A__private_or_public()) -
__str__— posebna metoda, automatski se poziva pri pretvaranju u string:print(str(a))
Dakle, za pozivanje privatne metode sa dvostrukim donjim crtom, treba koristiti ime sa imenom klase: _A__private_or_public().