Почему функции Python имеют __name__? [дубликат] ⇐ Python
-
Anonymous
Почему функции Python имеют __name__? [дубликат]
Меня смущает атрибут __name__, который есть у функций Python по умолчанию. Давайте рассмотрим следующий код:
def foo(): возврат Нет печать(foo.__name__) Код выведет «foo», как и ожидалось. Немного избыточно, но почему бы и нет, я думаю. Однако, если мы добавим следующее:
bar = foo печать(bar.__name__) Приведенный выше код также печатает «foo». С точки зрения объектов и атрибутов это имеет смысл. С точки зрения соглашения об именах это сбивает с толку.
Наконец, следующий код
baz = лямбда:Нет печать(баз.__имя__) выводит '', что малоинформативно.
У меня такое ощущение, что атрибут __name__ пытается мне что-то сказать, но я не могу понять, что именно. Могу ли я получить некоторое представление о причинах такого выбора дизайна?
Меня смущает атрибут __name__, который есть у функций Python по умолчанию. Давайте рассмотрим следующий код:
def foo(): возврат Нет печать(foo.__name__) Код выведет «foo», как и ожидалось. Немного избыточно, но почему бы и нет, я думаю. Однако, если мы добавим следующее:
bar = foo печать(bar.__name__) Приведенный выше код также печатает «foo». С точки зрения объектов и атрибутов это имеет смысл. С точки зрения соглашения об именах это сбивает с толку.
Наконец, следующий код
baz = лямбда:Нет печать(баз.__имя__) выводит '', что малоинформативно.
У меня такое ощущение, что атрибут __name__ пытается мне что-то сказать, но я не могу понять, что именно. Могу ли я получить некоторое представление о причинах такого выбора дизайна?
Мобильная версия