Переменные формы __something__ - PullRequest
       5

Переменные формы __something__

0 голосов
/ 30 сентября 2011

Для чего нужны переменные Python __something__ Например, __name__, __file__

Я часто вижу их в реальных программах на Python.Есть ли список этих переменных?

спасибо

Ответы [ 3 ]

5 голосов
/ 30 сентября 2011

PEP8 охватывает это:

Кроме того, следующие специальные формы с использованием ведущих или конечных знак подчеркивания (как правило, можно сочетать с любым условное обозначение):

  • _single_leading_underscore: слабый индикатор "внутреннего использования". Например. "от М import * "не импортирует объекты, имя которых начинается с подчеркивания.

  • single_trailing_underscore_: используется по соглашению, чтобы избежать конфликтует с Ключевое слово Python, например

    Tkinter.Toplevel (master, class _ = 'ClassName')

  • __ double_leading_underscore: при именовании атрибута класса, вызывает имя искажение (внутри класса FooBar, __boo становится FooBar _boo; см. ниже).

  • __ double_leading_and_trailing_underscore__: "магические" объекты или атрибуты, которые живут в управляемых пользователем пространствах имен. Например. __в этом__, __import__ или __file__. Никогда не изобретайте такие имена; использовать только их как задокументировано.

Последняя точка сноски уместна.

Есть ли список этих переменных?

Я сомневаюсь, что есть официальный список всех таких двойных начальных и конечных имен подчеркивания, но я не мог сказать так точно.

1 голос
/ 30 сентября 2011

Они считаются особенными или волшебными.Язык не мешает вам создавать свои собственные, но не создавайте.

Вот хорошее руководство по магическим методам , но есть и специальные атрибуты, такие как __all__, который обычно произносится как "Dunder All" или "Under Under all".

1 голос
/ 30 сентября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...