更新:
由於主線程和後臺線程在同一個程序和共享內存。您可以使用一個字典來存儲變量及其鍵創建容器:
import random
mystorage = {}
def getint(value):
while True:
key = random.randint(0, 0xffffffff)
if key in mystorage:
continue
mystorage[key] = value
return key
def getvalue(key):
return mystorage.get(key)
您可能需要如果鍵衝突根據您的情況進行測試時加寫鎖。但通常這對多線程程序很好。
只是一個主意,用int
(實際上long
)類型傳遞任何picklable對象:
import codecs
import pickle
def dumps(payload):
data = pickle.dumps(payload)
return int(codecs.encode(data, 'hex'), 16)
def loads(intval):
data = codecs.decode(hex(intval)[2:].encode('ascii'), 'hex')
return pickle.loads(data)
assert loads(dumps({'foo': 'bar'})) == {'foo': 'bar'}
# no error
如果您正在使用Python 3.2+,您還可以使用int.from_bytes()
和int.to_bytes()
實現這一目標。
你是否也可以通過'long'作爲參數? –
文檔說int,但我測試了很長時間它的工作。 使用long而不是int會有什麼好處? 無論如何感謝您花時間回答 – graphos
您可以使用列表:'a = [10]; B = [12];打印b [0]; B = A;打印b [0];一個[0] = 8; '' –