我有这样的类线程:
import threading, time
class th(threading.Thread):
def run(self):
print "Hi"
time.sleep(5)
print "Bye"
现在让我说我希望每次“睡觉”都不同,所以我尝试了:
import treading, time
class th(threading.Thread, n):
def run(self):
print "Hi"
time.sleep(n)
print "Bye"
它不起作用,它给了我一个信息:
group参数现在必须为None
那么,如何在运行中传递参数?
注意:我使用类中的另一个函数来完成它:
import treading, time
class th(threading.Thread):
def run(self):
print "Hi"
time.sleep(self.n)
print "Bye"
def get_param(self, n):
self.n = n
var = th()
var.get_param(10)
var.start()
答案 0 :(得分:3)
尝试此操作 - 您希望将超时值添加到对象,因此您需要该对象将该变量作为其中的一部分。您可以通过添加在创建类时执行的__init__
函数来实现。
import threading, time
class th(threading.Thread):
def __init__(self, n):
self.n = n
def run(self):
print "Hi"
time.sleep(self.n)
print "Bye"
查看更多详情here。
答案 1 :(得分:1)
class Th(threading.Thread):
def __init__(self, n):
super(Th, self).__init__()
self.n = n
def run(self):
print 'Hi'
time.sleep(self.n)
Th(4).run()
定义构造函数,并将参数传递给构造函数。 class
行上的括号分隔父类列表; n
是参数,而不是父级。