Имя метода из переменной в ООП в Python
По аналогии с названиями свойств в переменной
также можно хранить и имена методов. Давайте
посмотрим на примере. Пусть у нас дан вот
такой класс User с геттерами свойств:
class User:
def __init__(self, name, surn):
self.__name = name
self.__surn = surn
def get_name(self):
return self.__name
def get_surn(self):
return self.__surn
Создадим объект этого класса:
user = User('john', 'smit')
Пусть в переменной хранится имя метода:
method = 'get_name'
Давайте вызовем метод
с именем из переменной. Сначала
получим метод функцией getattr,
затем вызовем его:
method = 'get_name'
print(getattr(user, method)()) # выведет 'john'
Дан следующий класс:
class Employee:
def __init__(self, name, salary, position):
self.__name = name
self.__salary = salary
self.__position = position
def get_name(self):
return self.__name
def get_salary(self):
return self.__salary
def get_position(self):
return self.__position
Дан словарь:
methods = {
'method1': 'get_name',
'method2': 'get_salary',
'method3': 'get_position',
}
Создайте объект класса Employee,
а затем обратитесь к его методам
через элементы словаря.