Введение в вызовы по имени в ООП в Python
Иногда имя свойства или метода объекта заранее неизвестно. Оно может храниться в переменной, в элементе списка или словаря, возвращаться из функции. В таких случаях обращаться через точку неудобно.
В Python для чтения свойства по имени
из строки служит функция getattr.
Первым параметром в нее передают объект,
вторым - имя свойства строкой.
Пусть у нас есть класс User:
class User:
def __init__(self, name, surn):
self.name = name
self.surn = surn
Создадим объект и выведем свойство по имени из переменной:
user = User('john', 'smit')
prop = 'name'
print(getattr(user, prop)) # выведет 'john'
В этом разделе мы разберем getattr,
запись через setattr, вызов методов
по имени и проверку свойств
функцией hasattr.