Middle
Как да извикаме всеки от методите на класа A?
sobes.tech AI
Отговор от AI
Да предположим, че имаме клас A с методи:
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
За да извикате всеки метод:
-
what_time— обикновен метод, извиква се чрез екземпляр:a = A('здравей') print(a.what_time()) -
useless_getter— свойство, се извиква като атрибут без скоби:print(a.useless_getter) -
__private_or_public— метод с двойно подчертаване, името се променя (name mangling), за да се извика:print(a._A__private_or_public()) -
__str__— специален метод, се извиква автоматично при преобразуване в низ:print(str(a))
Следователно, за да се извика частен метод с двойно подчертаване, трябва да се използва името с името на класа: _A__private_or_public().