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().