1 ''' 2 問題:需要傳參怎么辦? 3 例如,希望給每個線程打印的時候休眠時間不一樣,打印次數不一樣 4 例如,給每個線程指定一個名稱,或者id 5 1、重寫構造方法,把傳入的參數作為成員變量 6 2、別忘了調用父類的構造方法 7 ''' 8 9 # encoding: utf-8 10 11 import threading 12 import time 13 14 class MyThread(threading.Thread): 15 # 重寫的__init__會覆蓋父類的__init__,需要在創建子類之前調用父類的構造方法來創建一個父類對象,在父類對象的基礎上再追加一 16 # 些屬性。比如這里的self.step = step 17 # 調用父類的構造方法 18 def __init__(self, step, times): 19 threading.Thread.__init__(self) 20 self.step = step # 成員變量,可以在不同的類方法之間使用 21 self.times = times 22 23 def run(self): # run方法前面的圈圈可以看出是復寫了線程原本的run方法 24 for i in range(self.times): 25 print(self.name) # 線程的名稱可以直接寫self.name(父類的構造方法中定義好的成員變量),調用主線程的時候會有線程名稱 26 time.sleep(self.step) 27 28 print('主線程開始啦!') 29 th1 = MyThread(step=0.3, times=8) 30 th2 = MyThread(0.6, times=6) 31 th3 = MyThread(0.2, times=1) 32 33 th1.start() 34 th2.start() 35 th3.start() 36 37 th1.join() 38 th2.join() 39 th3.join() 40 print("主線程結束啦!")