У меня есть класс, который имеет некоторые функции обратный вызов и свой собственный интерфейс, что-то вроде:главенствующие обратные вызовов избегая загрязнения атрибутов
class Service:
def __init__(self):
connect("service_resolved", self.service_resolved)
def service_resolved(self, a,b c):
''' This function is called when it's triggered
service resolved signal and has a lot of parameters'''
функции подключаемой к примеру gtkwidget.connect, но я хочу, что это соединение нечто более общее, так что я решил использовать «скручены, как» подход:
class MyService(Service):
def my_on_service_resolved(self, little_param):
''' it's a decorated version of srvice_resolved '''
def service_resolved(self,a,b,c):
super(MyService,self).service_resolved(a,b,c)
little_param = "something that's obtained from a,b,c"
self.my_on_service_resolved(little_param)
так что я могу использовать MyService Переопределелив my_on_service_resolved.
Проблема - это «атрибуты» загрязнения. В реальной реализации служба имеет некоторые атрибуты, которые могут быть случайно переопределены в MyService и тем, кто подклассифицирует MyService.
Как я могу избежать загрязнения атрибута?
То, что я думал, что это «обертка», как подход, но я не знаю, если это хорошее решение:
class WrapperService():
def __init__(self):
self._service = service_resolved
# how to override self._service.service_resolved callback?
def my_on_service_resolved(self,param):
'''
'''