Middle
Jak wywołać każdą z metod klasy A?
sobes.tech AI
Odpowiedź od AI
Załóżmy, że mamy klasę A z metodami:
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
Aby wywołać każdą metodę:
-
what_time— zwykła metoda, wywoływana przez instancję:a = A('cześć') print(a.what_time()) -
useless_getter— właściwość, wywoływana jako atrybut bez nawiasów:print(a.useless_getter) -
__private_or_public— metoda z podwójnym podkreśleniem, nazwa się zmienia (name mangling), aby wywołać:print(a._A__private_or_public()) -
__str__— specjalna metoda, wywoływana automatycznie przy konwersji do stringa:print(str(a))
W związku z tym, aby wywołać prywatną metodę z podwójnym podkreśleniem, należy użyć nazwy z klasą: _A__private_or_public().