Почему функции Python имеют __name__? [дубликат]Python

Программы на Python
Anonymous
Почему функции Python имеют __name__? [дубликат]

Сообщение Anonymous »


Меня смущает атрибут __name__, который есть у функций Python по умолчанию. Давайте рассмотрим следующий код:

def foo(): возврат Нет печать(foo.__name__) Код выведет «foo», как и ожидалось. Немного избыточно, но почему бы и нет, я думаю. Однако, если мы добавим следующее:

bar = foo печать(bar.__name__) Приведенный выше код также печатает «foo». С точки зрения объектов и атрибутов это имеет смысл. С точки зрения соглашения об именах это сбивает с толку.

Наконец, следующий код

baz = лямбда:Нет печать(баз.__имя__) выводит '', что малоинформативно.

У меня такое ощущение, что атрибут __name__ пытается мне что-то сказать, но я не могу понять, что именно. Могу ли я получить некоторое представление о причинах такого выбора дизайна?

Вернуться в «Python»