Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
07 Июл 2023
2 мин
2056

Одинарные и двойные подчеркивания перед именем объекта в Python

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

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

class MyClass:
    def __init__(self):
        self.__private_var = 10

    def _semi_private_method(self):
        pass

В данном примере перед именем переменной private_var стоят два подчеркивания, а перед именем метода semi_private_method — одно подчеркивание. Что это значит?

Одинарное подчеркивание

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

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

Двойное подчеркивание перед именем объекта служит для создания «приватных» атрибутов класса. Это означает, что доступ к таким атрибутам извне класса будет затруднен. Python автоматически «прячет» такие атрибуты, изменяя их имена. Этот процесс называется «name mangling».

Например, в классе MyClass из примера выше, атрибут __private_var будет автоматически переименован в _MyClass__private_var. Таким образом, попытка обратиться к __private_var напрямую приведет к ошибке.

Однако стоит отметить, что, несмотря на «name mangling», доступ к «приватным» атрибутам все еще возможен, если знать, как Python переименовывает их. Поэтому двойное подчеркивание не делает атрибуты класса абсолютно недоступными, а лишь затрудняет к ним доступ.

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

Добавить комментарий

Подарок
Забрать подарок