Условия корректного вызова метода

Обе строки выполнятся без исключений. Print(Dev.hello) покажет представление функции, а print(Dev.hello()) вызовет её и выведет Hello world.

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

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

Обе строки выполнятся без исключений. Print(Dev.hello) покажет представление функции, а print(Dev.hello()) вызовет её и выведет Hello world.

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

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

Условие

При каких обстоятельствах метод выполнится без возникновения исключений?

class Dev:

    @staticmethod
    def hello():
        return "Hello world"
    

print(Dev.hello)
print(Dev.hello())

Ответ

Обе строки выполнятся без исключений. Print(Dev.hello) покажет представление функции, а print(Dev.hello()) вызовет её и выведет Hello world.

Первая строка получает объект функции, но не исполняет тело. Его представление обычно содержит имя и адрес, который зависит от запуска; фиксировать его точное значение нельзя. Скобки во второй строке выполняют вызов без аргументов, как и требует сигнатура. Благодаря staticmethod Python не подставляет self. Вызов через экземпляр Dev().hello() тоже допустим.

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

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

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

Подробнее