阅读一些Python(PyQt)代码,我发现如下。
@pyqtSignature("QString")
def on_findLineEdit_textEdited(self, text):
self.__index = 0
self.updateUi()
这个@pyqtSignature
如何运作? Python如何处理这个@
?
答案 0 :(得分:5)
它是装饰器语法,只是它等同于这种形式:
on_findLineEdit_textEdited = pyqtSignature("Qstring")(on_findLineEdit_textEdited)
非常简单。
典型的装饰器将必须装饰的函数作为第一个参数,并对其执行填充/添加功能。一个典型的例子是:
def echo_fname(f):
def newfun():
print f.__name__
f()
return newfun
步骤如下:
f
答案 1 :(得分:2)
这是function decorators的语法。