继承python中的线程类

时间:2019-03-15 14:51:01

标签: python multithreading python-multithreading

我对继承线程类有一些疑问。

class MyThread(threading.Thread):
  def __init__(self, num):
    threading.Thread.__init__(self)
    self.num = num

  def run(self):
    print("Thread", self.num)
    time.sleep(1)

为什么我不能仅覆盖run方法? threading的Python文档提到 ”“ Thread类代表在单独的控制线程中运行的活动。有两种方法指定活动:将可调用对象传递给构造函数,或通过覆盖子类中的run()方法。”

为什么上面的示例代码也会覆盖构造函数?

1 个答案:

答案 0 :(得分:2)

构造函数被重写以将num参数从创建MyThread实例的位置传递到run方法。

请注意,您不会直接调用run方法,因此除非将它们存储在构造函数中,否则无法将任何参数传递给该方法。

如果您不需要传递参数,则只能覆盖run方法。