Для чего нужны переменные Python __something__ Например, __name__, __file__
__something__
__name__
__file__
Я часто вижу их в реальных программах на Python.Есть ли список этих переменных?
спасибо
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__. Никогда не изобретайте такие имена; использовать только их как задокументировано.
Кроме того, следующие специальные формы с использованием ведущих или конечных знак подчеркивания (как правило, можно сочетать с любым условное обозначение):
_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__. Никогда не изобретайте такие имена; использовать только их как задокументировано.
Последняя точка сноски уместна.
Есть ли список этих переменных?
Я сомневаюсь, что есть официальный список всех таких двойных начальных и конечных имен подчеркивания, но я не мог сказать так точно.
Они считаются особенными или волшебными.Язык не мешает вам создавать свои собственные, но не создавайте.
Вот хорошее руководство по магическим методам , но есть и специальные атрибуты, такие как __all__, который обычно произносится как "Dunder All" или "Under Under all".
__all__
Проверьте эту главу руководства по Python . Вас это устраивает?