Los decoradores de Python que forman parte de una clase base no se pueden usar para decorar funciones miembro en clases heredadas

Los decoradores de Python son divertidos de usar, pero parece que golpeé una pared debido a la forma en que se pasan los argumentos a los decoradores. Aquí tengo un decorador definido como parte de una clase base (el decorador accederá a los miembros de la clase, por lo tanto, requerirá el autoparámetro).

class SubSystem(object):
    def UpdateGUI(self, fun): #function decorator
        def wrapper(*args):
            self.updateGUIField(*args)
            return fun(*args)
        return wrapper

    def updateGUIField(self, name, value):
        if name in self.gui:
            if type(self.gui[name]) == System.Windows.Controls.CheckBox:
                self.gui[name].IsChecked = value #update checkbox on ui 
            elif type(self.gui[name]) == System.Windows.Controls.Slider:
                self.gui[name].Value = value # update slider on ui 

        ...

He omitido el resto de la implementación. Ahora esta clase es una clase base para varios subsistemas que heredarán de ella; algunas de las clases heredadas necesitarán usar el decorador UpdateGUI.

class DO(SubSystem):
    def getport(self, port):
        """Returns the value of Digital Output port "port"."""
        pass

    @SubSystem.UpdateGUI
    def setport(self, port, value):
        """Sets the value of Digital Output port "port"."""
        pass

Una vez más, he omitido las implementaciones de funciones, ya que no son relevantes.

En resumen, el problema es que, si bien puedo acceder al decorador definido en la clase base desde la clase heredada especificándolo como SubSystem.UpdateGUI, finalmente obtengo este TypeError cuando intento usarlo:

unbound method UpdateGUI() must be called with SubSystem instance as first argument (got function instance instead)

Esto se debe a que no tengo una forma inmediatamente identificable de pasar elself parámetro al decorador!

¿Hay alguna forma de hacer esto? ¿O he alcanzado los límites de la implementación actual del decorador en Python?

Respuestas a la pregunta(4)

Su respuesta a la pregunta