def register(self, name, *slots):
        """
        Registers a given signal
        :param name: the signal to register
        """
        # setdefault initializes the object even if it exists. This is more efficient
        if name not in self:
            self[name] = Signal()

        for slot in slots:
            self[name].connect(slot)
def register ( self , name , * slots ) : if name not in self : self [ name ] = Signal ( ) for slot in slots : self [ name ] . connect ( slot )
Registers a given signal
        :param name: the signal to register