Двойное подчеркивание в Python

  1. Используйте двойное подчеркивание в Python
  2. Использование двойного начального и конечного подчеркивания в Python

И подчеркивание (_), и двойное подчеркивание (__) имеют большое значение в мире программирования Python и чрезмерно используются программистами для различных целей. Двойные подчеркивания очень удобны и часто встречаются в коде Python.

В этой статье мы обсудим значение двойного подчеркивания в Python.

Используйте двойное подчеркивание в Python

Когда двойное подчеркивание приводит к заданному идентификатору (__var), процесс изменения имени происходит на этом конкретном идентификаторе.

Попросту говоря, изменение имени заключается в переписывании имени атрибута, чтобы предотвратить конфликты именования с подклассами.

Вы можете использовать следующий код для объяснения двойного подчеркивания в начале Python.

class E1:
    def __init__(self):
        self.bar = 11
        self._baz = 23
        self.__foo = 23
x = E1()
print(dir(x))

Выход:

['_E1__foo', '__doc__', '__init__', '__module__', '_baz', 'bar']

Объяснение

  • В приведенном выше коде мы берем класс и сравниваем одинарное подчеркивание, двойное подчеркивание и обычные элементы.
  • Элементы foo, bar, baz - это простые ключевые слова, используемые здесь в качестве заполнителя для значений, которые могут измениться при условиях, переданных программе, или новой информации, полученной программой.
  • Функция dir() используется здесь для предоставления списка допустимых атрибутов данного объекта, переданного в качестве аргумента функции.

В приведенном выше коде мы замечаем, что переменные bar и _baz не изменились, а переменная __foo была изменена на _E1__foo. Это процесс запутывания имен, происходящий в переменной, и это делается для защиты переменной от переопределения в подклассах.

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

Использование двойного начального и конечного подчеркивания в Python

Когда переменная окружена двойным подчеркиванием как с ведущей, так и с конечной сторон, процесс изменения имени к ней не применяется.

Переменные, сгруппированные по двойному подчеркиванию, поскольку и префикс, и постфикс игнорируются интерпретатором Python.

Вы можете использовать следующий код для объяснения двойного подчеркивания в начале и в конце в Python.

class A:
    def __init__(self):
        self.__foo__ = 10

print(A().__foo__)

Выход:

10

В приведенном выше коде переменная foo с двойным подчеркиванием в качестве префикса и постфикса игнорируется интерпретатором, и изменение имени не происходит. Значение этой функции возвращается как результат, который доказывает, что переменная существует в списке атрибутов объекта.

Некоторые уникальные имена, такие как init или call, которые содержат как ведущее, так и завершающее двойное подчеркивание, зарезервированы в языке Python для специального использования.