Шаг 21.
Python: тонкости программирования. Шаблоны для чистого Python. Подчеркивания, ... . Двойной начальный и замыкающий символ подчеркивания: __var__

    На этом шаге мы рассмотрим их назначение и применение.

    Пожалуй, это удивляет, но искажение имен не применяется, если имя начинается и заканчивается двойными символами подчеркивания. Интерпретатор Python не трогает переменные, окруженные префиксом и постфиксом, которые состоят из двойных символов подчеркивания:

>>> class PrefixPostfixTest:
	def __init__(self):
		self.__bam__ = 42

		
>>> PrefixPostfixTest().__bam__
42

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

    Это правило касается таких имен, как метод __init__() для конструкторов объектов или метод __call__(), который делает объекты вызываемыми.

    Эти дандер-методы часто упоминаются как магические методы, однако в сообществе Python многим разработчикам, это слово не нравится. Такое название подразумевает, что применение дандер-методов не приветствуется, и это абсолютно не соответствует действительности. В Python они представляют собой ключевое функциональное средство и должны применяться по мере необходимости. В них нет ничего "магического" или тайного.

    Тем не менее в контексте согласованных правил именования лучше воздержаться от использования имен, которые начинаются и заканчиваются двойными символами подчеркивания, в своих собственных программах - во избежание конфликтов с последующими версиями языка Python.

    На следующем шаге мы рассмотрим одинарный символ подчеркивания.




Предыдущий шаг Содержание Следующий шаг