从主线程函数调用方法

时间:2014-02-17 17:43:06

标签: python multithreading class methods

我有一个线程类,当我收到消息时,我需要调用其他方法(在类外)。我怎么能成功呢?

class ClientThread(threading.Thread):
    def run(self):
        ...
        message = asdasd.sdas
        outside(message)
        ...

def outside(m):
     ...

当我试着打电话给我时出错:

Exception in thread Thread-1:
Traceback (most recent call last):
....
NameError: global name 'outside' is not defined

1 个答案:

答案 0 :(得分:1)

我的猜测是,在ClientThread的定义与outside的定义之间的某个省略代码中,您正在创建并启动客户端线程。此时,您的代码将尝试调用outside并因给定错误而失败,因为该函数尚未定义。

您应该在定义outside后启动您的主题,或者在outside之前移动ClientThread的定义。