Junior — Middle
67
Bir sınıf metodunu, dışarıdan değiştirilip çağrılmaması için nasıl uygularız?
AI'dan gelen yanıt
sobes.tech yapay zeka
В Python нет строгой приватности методов, но можно использовать соглашения для ограничения доступа:
- Одно подчёркивание (_method): обозначает, что метод предназначен для внутреннего использования, но не запрещает вызов извне.
- Двойное подчёркивание (__method): приводит к 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() # Работает, но не рекомендуется
Таким образом, для реализации метода, который не должен быть доступен извне, используют двойное подчёркивание в имени метода.