Можешь объяснить концепцию инкапсуляции в Python, включая то, как она скрывает внутреннее состояние, и соглашения об именовании для обозначения public, protected и private атрибутов? — ДейлиПреп