什么是功能
这个问题在这里已经有了答案:
  __init__用于初始化类对象。  当你创建一个myThread的新对象时,它首先调用threading.Thread.__init__(self) ,然后定义两个属性str1和str2。 
  请注意,您明确地调用threading.Thread ,它是myThread的基类。  最好通过super(myThread, cls).__init__(self)引用父__init__方法。 
Python文档
super有两种典型的用例。 在具有单一继承的类层次结构中,super可以用于引用父类而不显式命名它们,从而使代码更易于维护 。 这种用法与其他编程语言中超级用法非常类似。
第二个用例是在动态执行环境中支持协作式多重继承 。
  派生类调用基类init有几个原因。  一个原因是如果基类在__init__方法中做了一些特殊的事情。  你甚至可能没有意识到这一点。  另一个原因与OOP有关。  假设您有一个基类和两个从它继承的子类。 
class Car(object):
    def __init__(self, color):
        self.color = color
class SportCar(car):
    def __init__(self, color, maxspeed):
        super(SportCar, cls).__init__(self, color)
        self.maxspeed = maxspeed
 class MiniCar(car):
    def __init__(self, color, seats):
        super(MiniCar, cls).__init__(self, color)
        self.seats = seats
  这只是为了展示一个示例,但您可以看到SportCar和MiniCar对象如何使用super(CURRENT_CLASS, cls).__init(self, PARAMS)调用Car类来在基类中运行初始化代码。  请注意,您还需要仅在一个地方维护代码,而不是在每个班级中重复该代码。 
  这里发生的事情是,你从类threading.Thread继承你的类myThread 。 
  因此, threading.Thread类中的所有函数都可以在您的继承类中使用,并且您正在修改类中的__init__函数。  所以不是运行父类的init方法,而是在你的类中运行__init__方法。 
  所以你需要确保父类的__init__方法在执行修改的__init__函数之前也运行。  这就是使用threading.Thread.__init__(self)语句的原因。  它只是调用父类的__init__方法。 
