В Python атрибуты или методы, начинающиеся и заканчивающиеся двойным подчеркиванием (например, init, str), называются "магическими" или "специальными" методами. Они имеют особое значение для интерпретатора и позволяют переопределять поведение объектов, например, инициализацию, представление в виде строки, арифметические операции и др. Такие методы не предназначены для прямого вызова пользователем, а используются встроенными функциями и операторами.
Можно ли получить доступ к атрибуту или методу класса, начинающемуся с двух подчёркиваний? Какие есть особенности?
В Python атрибуты или методы, начинающиеся и заканчивающиеся двойным подчеркиванием (например, init, str), называются "магическими" или "специальными" методами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Python атрибуты или методы, начинающиеся и заканчивающиеся двойным подчеркиванием (например, __init__, __str__), называются "магическими" или "специальными" методами. Они имеют особое значение для интерпретатора и позволяют переопределять поведение объектов, например, инициализацию, представление в виде строки, арифметические операции и др. Такие методы не предназначены для прямого вызова пользователем, а используются встроенными функциями и операторами.
Пример:
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return f"MyClass с value = {self.value}"
obj = MyClass(10)
print(obj) # Вызовет __str__ автоматически