Back to questions
МТС
Junior — Middle
46
Как определить метод класса как приватный в объектно-ориентированном программировании?
Companies where asked
Оптимакрос
Answer from AI
sobes.tech AI
В Python нет строгой приватности методов, как в некоторых других языках (например, Java или C++). Однако, по соглашению, методы, имена которых начинаются с двойного подчеркивания __, считаются приватными и подвергаются манглингу имен (name mangling), что затрудняет их вызов извне класса.
Пример:
class MyClass:
def __private_method(self):
print("Это приватный метод")
def public_method(self):
self.__private_method()
obj = MyClass()
obj.public_method() # Работает
# obj.__private_method() # Ошибка: AttributeError
# Но можно вызвать так:
obj._MyClass__private_method() # Работает, но не рекомендуется
Таким образом, чтобы определить метод как приватный, нужно назвать его с двойным подчеркиванием в начале имени.