Это последняя пройденная тема. Коротко об этом. Есть три типа доступа для атрибутов/свойств и методов класса/экземпляра класса:
📌
attribute (без подчёркиваний) - публичное свойство (public)📌
_attribute (с одним подчёркиванием) - protected (внутри класса и дочерних классов) 📌
__attribute (с двумя подчёркиваниями) - private (только внутри класса)🤔 Формально 3, но фактически 2
Второй тип режима никак не запрещает программисту обращаться к данным класса. Это лишь напоминание, что лучше не изменять. Третий же способ фактически не дает ничего делать с атрибутами и методами.
😁 Но есть одно но
Если очень хочется, то можно))
Допустим у нас есть класс User. Мы создали экземпляр класса, в init-e прописав его возраст(__age) как приватную(private) переменную:
u = User(27)Можно обратиться к атрибуту __age так:
u._User__ageА если напрямую через u.age или u.__age - будет ошибка. Но вообще лучше так не делать)
🛠 Сеттеры и геттеры
Это просто такие методы в классе, которые что-то делают с приватными атрибутами:
📌
set_age(self, age) - изменить значение возраста📌
get_age(self) - вернуть значение возрастаМетоды класса так же могут иметь разные режимы доступа.
💬 Есть вопросы или хотите поделиться опытом?
Присоединяйтесь к обсуждению в чате!