Модификаторы доступа в python
В Python существует три уровня модификаторов доступа, которые определяют видимость атрибутов и методов внутри класса и вне его. Эти модификаторы предоставляют средства контроля доступа к данным и методам класса:
Public (Открытый):
Атрибуты и методы, объявленные как открытые, доступны из любого места в программе.
В Python отсутствует явное ключевое слово для определения открытых атрибутов или методов. Все атрибуты и методы по умолчанию являются открытыми.
class MyClass: def __init__(self, x): self.x = x # Открытый атрибут def display(self): print(self.x) # Открытый метод
Protected (Защищенный):
Атрибуты и методы, объявленные как защищенные, доступны только внутри класса и его подклассов (наследников).
Для обозначения защищенных атрибутов и методов используется одно подчеркивание перед именем.
class MyClass: def __init__(self, x): self._x = x # Защищенный атрибут def _display(self): print(self._x) # Защищенный метод
Private (Закрытый):
Атрибуты и методы, объявленные как закрытые, доступны только внутри класса. Они не наследуются подклассами.
Для обозначения закрытых атрибутов и методов используется два подчеркивания перед именем.
class MyClass: def __init__(self, x): self.__x = x # Закрытый атрибут def __display(self): print(self.__x) # Закрытый метод
Обратите внимание, что в Python нет строгого ограничения доступа, и это больше связано с соглашениями и договоренностями. Например, закрытые атрибуты все равно могут быть доступны извне класса с использованием имени
_Класс__атрибут
. Однако, такой доступ не рекомендуется использовать и считается неэффективным подходом.
Last updated
Was this helpful?