В Python доступ к свойствам объекта можно получить напрямую через точечную нотацию, без использования метода get. Например:
Объясните разницу между методами __getattribute__ и __getattr__. Что произойдёт, если в __getattribute__ случайно вызвать self.attribute без использования super()?
В Python доступ к свойствам объекта можно получить напрямую через точечную нотацию, без использования метода get. Например:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Python доступ к свойствам объекта можно получить напрямую через точечную нотацию, без использования метода get. Например:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('Иван', 30)
print(p.name) # прямой доступ к свойству
Также можно использовать функцию getattr(), которая позволяет получить значение свойства по имени в виде строки:
print(getattr(p, 'age')) # 30
Таким образом, основные способы доступа к свойствам объекта без метода get:
- Прямой доступ через
object.property - Использование
getattr(object, 'property_name')
Если нужно контролировать доступ или вычислять значение, можно использовать декоратор @property, но это уже не прямой доступ к атрибуту, а вызов метода, оформленного как свойство.