def what_time():

Предположим, у нас есть класс A с методами:

Короткий ответ

Что ответить на собеседовании

Предположим, у нас есть класс A с методами:

Подробный разбор

Ответ с пояснениями

Условие

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?

Ответ

Предположим, у нас есть класс 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().

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее