收集函数的值

时间:2015-10-26 18:04:11

标签: python python-2.7 pyqt4

我使用KISS Python模块从串行通信端口收集数据。 该模块具有返回从串行端口获得的值的值的函数。获取模块源代码的代码行如下:

for frame in frames:
    if len(frame) and ord(frame[0]) == 0:
        self.logger.debug('frame=%s', frame)
        self.logger.debug('hola soy el logger debug')

        if callback:
            callback(frame)

我试图将frame的值存储在变量中。我需要在我通过继承创建类QThread的对象的线程中完成。我正在使用PyQt4创建一个应用程序。

课程如下:

class OperativeKISSThread(KISSThread):
    def __init__(self, parent = None):
        KISSThread.__init__(self, parent)

    def doWork(self):
        prueba.read(callback=self.catchValue(frame))
        return True

    def catchValue(self, frame):
        print frame

当我运行上面的代码时,我得到以下屏幕输出:

Traceback (most recent call last):
  File "_client_amp.py", line 432, in run
    success = self.doWork(self.kissTNC)
  File "_client_amp.py", line 452, in doWork
    prueba.read(callback=self.catchValue(frame))
NameError: global name 'frame' is not defined

我的代码会对框架的值进行哪些更改?

1 个答案:

答案 0 :(得分:2)

应仅使用函数名指定回调,例如:

def doWork(self, prueba):
    prueba.read(callback=self.catchValue)
    return True