0

我有一个这样的类线程:

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()
4

2 回答 2

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"

在此处查看更多详细信息。

于 2013-08-22T23:58:21.607 回答
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是一个参数,而不是父级。

于 2013-08-22T23:59:54.613 回答