Back to questions
Junior — Middle
50
Каким образом в Python объявляются приватные переменные и методы внутри класса?
Answer from AI
sobes.tech AI
В Python нет настоящих приватных переменных и методов, как в некоторых других языках, но есть соглашения и механизмы для обозначения их как приватных.
-
Одинарное подчёркивание
_var— это соглашение, что переменная или метод предназначены для внутреннего использования (неофициальная приватность). -
Двойное подчёркивание
__var— приводит к манглингу имени (name mangling), то есть имя переменной внутри класса изменяется, чтобы затруднить доступ извне.
Пример:
class MyClass:
def __init__(self):
self._internal_var = 1 # условно приватная
self.__private_var = 2 # имя будет изменено
def __private_method(self):
print("Это приватный метод")
obj = MyClass()
print(obj._internal_var) # доступ возможен, но не рекомендуется
# print(obj.__private_var) # вызовет ошибку
print(obj._MyClass__private_var) # доступ через манглинг имени
Таким образом, двойное подчёркивание помогает скрыть переменные и методы от прямого доступа, но полностью приватными они не являются.