Junior — Middle
73
Obyekt yönümlü proqramlaşdırmada sinif metodunun xüsusi olduğunu necə müəyyən etmək olar?
Şirkətlər soruşuldu
Оптимакрос
AI-dan cavab
sobes.tech Süni İntellekt
В 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() # Работает, но не рекомендуется
Таким образом, чтобы определить метод как приватный, нужно назвать его с двойным подчеркиванием в начале имени.