2012-12-29 45 views
1

如何在传递“自己”的类方法上调用线程?我有一个类定义如下,并希望以self作为参数在新线程中调用class方法。我试过但自己没有通过作为参数在类方法上创建线程

cust_obj = Customer() 
thread.start_new_thread(cust_obj.process,()) 

class Customer(): 
    def __init__(self): 
     pass 
    def process(self): 
     self.fetch_data() 
     self.serialize_data() 
    def fetch_data(self): 
     # Fetch data logic 
     pass 
    def serialize_data(self): 
     # Serialize fetched data 
     pass 
+0

应该工作(关键字:绑定方法)。什么是错误信息? – delnan

+0

这应该工作。无论如何,一个简单的解决方法可能是:'thread.start_new_thread((lambda:Customer()。process()),())' – Bakuriu

+0

只有在声明失败时才能提供任何帮助。 –

回答

2

我相信你应该把类定义之前的实例创建。然后它会工作。

class Customer(): 
    ... 
cust_obj = Customer() 
thread.start_new_thread(cust_obj.process,())