Middle
Cum să apelezi fiecare metodă a clasei A?
sobes.tech AI
Răspuns de la AI
Să presupunem că avem o clasă A cu metode:
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
Pentru a apela fiecare metodă:
-
what_time— metodă obișnuită, apelată printr-o instanță:a = A('salut') print(a.what_time()) -
useless_getter— proprietate, apelată ca atribut fără paranteze:print(a.useless_getter) -
__private_or_public— metodă cu dublu underscore, numele se schimbă (name mangling), pentru a apela:print(a._A__private_or_public()) -
__str__— metodă specială, apelată automat la conversia în șir de caractere:print(str(a))
Prin urmare, pentru a apela o metodă privată cu dublu underscore, trebuie să folosiți numele cu clasa: _A__private_or_public().