Sobes.tech
Back to questions
Middle
7

def what_time(): 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 Как вызвать каждый из методов класса A?

Companies where asked
Mayflower

Answer from AI

sobes.tech 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('hello')
    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().