¿Es necesario el decorador de tragamonedas PySide?

He visto un código de ejemplo para ranuras PySide que utiliza el decorador @ QtCore.Slot, y algo que no lo hace. Probándolo yo mismo, no parece hacer una diferencia. ¿Hay alguna razón por la que debería o no debería usarlo? Por ejemplo, en el siguiente código:

import sys
from PySide import QtCore

# the next line seems to make no difference
@QtCore.Slot()
def a_slot(s):
    print s

class SomeClass(QtCore.QObject):
    happened = QtCore.Signal(str)
    def __init__(self):
        QtCore.QObject.__init__(self)
    def do_signal(self):
        self.happened.emit("Hi.")

sc = SomeClass()
sc.happened.connect(a_slot)
sc.do_signal()

el decorador @ QtCore.Slot no hace ninguna diferencia; Puedo omitirlo, llamar a @ QtCore.Slot (str), o incluso a @ QtCore.Slot (int), y todavía dice muy bien, "Hola".

Lo mismo parece ser cierto para pyqtSlot de PyQt.

Respuestas a la pregunta(3)

Su respuesta a la pregunta