Инкапсуляция - это способ защитить класс от поломки. Благодаря этому мы не сможем получить доступ к методу или полю где-то вне класса. Но какие уровни защиты существуют?
public - поле или метод можно использовать где угодно
private - поле или метод можно использовать только внутри класса или внутри класса наследника
protected - поле или метод можно использовать только внутри класса
В Python нет модификаторов доступа, это такие переменные, которые ограничили бы доступ к полям. То есть, если стоит модификатор private, а мы попытаемся обратиться к полю вне класса, то будет ошибка. В питоне такого нет, но программисты придумали кое что получше!
Если вы хотите установить уровень public просто запишите название поля / метода
Если хотите установить уровень private добавьте в начало названия одно подчеркивание
Если хотите установить уровень protected добавьте в начало два подчеркивания.
Чтобы вы проще поняли смысл инкапсуляции, я написал вот такой код:
Там написано, в каком случае использовать поле можно а в каком нельзя.