Во-первых, словарь должен быть определен в __init__
, или у вас есть O(n)
сложность каждый раз, когда вы вводите функцию select_one
(словарь создается каждый раз, что делает пример в вашей ссылке неправильным)
во-вторых, ваши методы имеют то же имя, что и ваши атрибуты.Измени это:
class trial:
def __init__(self):
self.a = 'a'
self.b = 'b'
self.map_func = {
1 : self.f_a,
2 : self.f_b
}
def f_a(self):
return self.a
def f_b(self):
return self.b
def select_one(self, option):
return self.map_func[option]()
t = trial()
print(t.select_one(1))