Middle
Kaip iškviesti kiekvieną A klasės metodą?
sobes.tech AI
Atsakymas iš AI
Tarkime, turime A klasę su metodais:
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
Kiekvieno metodo kvietimui:
-
what_time— įprastas metodas, kviečiamas per pavyzdį:a = A('labas') print(a.what_time()) -
useless_getter— savybė, kviečiama kaip atributas be skliaustelių:print(a.useless_getter) -
__private_or_public— dvigubo pabraukimo metodas, pavadinimas keičiasi (name mangling), kvietimui:print(a._A__private_or_public()) -
__str__— specialus metodas, automatiškai kviečiamas konvertuojant į eilutę:print(str(a))
Todėl, norint iškviesti privačią dvigubo pabraukimo metodą, reikia naudoti su klase susijusį pavadinimą: _A__private_or_public().