[英]Pass variable contents to class function in Python
我正在嘗試將變量的內容傳遞給作為線程運行的類中的函數。 我該怎么做? 以下是一些應該具有以下輸出的偽代碼。 有問題的變量是p_number
。
class sessioning(Thread):
def run(self, p_number):
print p_number
p_number = 50885
for i in xrange(30):
sessioning().start(p_number)
p_number+=1
50885
50886
50887
50888
50889
50890
50891
50892
50893
50894
50895
... Numbers in-between
50914
50915
請注意,此代碼只是一個示例,我實際上並沒有執行過度殺傷。 這是一個普遍的問題,但我的具體應用是讓它監聽該范圍內的端口。
通過構造函數傳遞它。
class Sessioning(Thread):
def __init__(self, p_number):
Thread.__init__(self)
self._pn = p_number
def run(self):
print(self._pn)
p_number = 50885
for i in xrange(30):
Sessioning(p_number).start()
p_number += 1
Thread類已經實現了一種簡單的方法來調用帶參數的函數。
這是一個簡單的例子:
def say_hi(name):
print "hello", name
現在,您可以使用Thread構造函數按位置或按名稱傳遞參數:
from threading import Thread
a = Thread(target=say_hi, args=("byposition",))
a.run()
b = Thread(target=say_hi, kwargs={"name": "byname"})
b.run()
這應該正確輸出:
hello byposition
hello byname
Ps:作為附注,由於您使用多線程,因此您不能假設輸出將按照您在示例中顯示的順序排列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.