Сокрытие атрибутов (свойств, методов и пр.) и ограничение доступа к ним.
В отличие от некоторых других языков, предоставляющих специальные инструкции для разметки атрибутов, доступ к которым должен быть ограничен (private, protected), в Питоне все атрибуты являются публичными (public).

Тем не менее, действует соглашение, что атрибуты (модулей, классов), начинающиеся с одиночного подчерка (_) являются скрытыми (их модификация не предусмотрена авторами кода и может привести к неожиданным последствиям).

    class MyClass:

def __init__(self):
self.some_attr = 1
self._other_attr = 'раз'
self.__hideit = 'скрыт'


my_obj = MyClass()
my_obj.some_attr # 1
my_obj.some_attr = 2
my_obj.some_attr # 2

# Сокрытие договорённостью.
my_obj._other_attr # 'раз'
my_obj._other_attr = 'два'
my_obj._other_attr # 'два'

Помимо этого, существует механизм обфускации (изменения) имён атрибутов, затрудняющий доступ к ним извне (внутри области видимости атрибут доступен по неизменённому имени). Механизм применяется к атрибутам, начинающимся с пары подчерков (__).

    # Сокрытие обфускацией имени.
my_obj.__hideit # AttributeError: 'MyClass' object has no attribute '__hideit'
my_obj._MyClass__hideit # 'скрыт'
my_obj._MyClass__hideit = 'вижу'
my_obj._MyClass__hideit # 'вижу'

Синонимы поиска: Скрытые атрибуты классов и модулей, private, protected, _
На заметку
Зарегистрированные пользователи могут получать еженедельный дайджест обновлений на сайте.