Ist der PySide Slot Decorator notwendig?

Ich habe einige Beispielcodes für PySide-Slots gesehen, die den @ QtCore.Slot-Dekorator verwenden, andere dagegen nicht. Wenn ich es selbst teste, scheint es keinen Unterschied zu machen. Gibt es einen Grund, warum ich es verwenden sollte oder nicht? Zum Beispiel im folgenden Code:

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()

Der @ QtCore.Slot-Dekorator macht keinen Unterschied. Ich kann es weglassen, @ QtCore.Slot (str) oder sogar @ QtCore.Slot (int) aufrufen und es sagt immer noch nett "Hi".

Dasselbe scheint für PyQts pyqtSlot zu gelten.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage