Код: Выделить всё
class ServicesManager:
def __init__(self):
self.services = dict()
def add_service(self,name,func):
self.services[name] = func
def call_service(self,name):
self.services[name](name)
Вот класс, использующий ServicesManager, с примером использования:
Код: Выделить всё
class B(ServicesManager):
def __init__(self):
super(B, self).__init__()
self.add_service("foo",self.service_foo)
self.add_service("bar",self.service_bar)
def service_foo(self,name):
# do something
print(name)
def service_bar(self,name):
# do something
print(name)
b = B()
b.call_service("foo")
b.call_service("bar")
Код: Выделить всё
class B(ServicesManager):
class helper_object_foo():
def func1(self,name):
pass
def func2(self):
pass
class helper_object_bar():
def func1(self,name):
pass
def func2(self):
pass
def __init__(self):
super(B, self).__init__()
#self.add_service("foo",self.service_foo)
#self.add_service("bar",self.service_bar)
# How to call add_service???
self.add_service("foo",?? self.service_generic_func using helper_object_foo())
self.add_service("bar",?? self.service_generic_func using helper_object_bar())
def service_generic_func(self,name,helper_object):
helper_object.func1(name)
helper_object.func2()
print(name)
Подробнее здесь: https://stackoverflow.com/questions/793 ... ter-values
Мобильная версия