我有一個多播網絡,需要連續發送數據給所有其他用戶。這些數據會不斷變化,所以我不希望程序員必須處理向用戶發送數據包。因此,我試圖找出如何在Python中引用任何對象或變量(我是Python的新手),以便用戶可以修改它並更改多播包中發送的內容。Python中的參考文獻
這裏是我想要的一個例子:
>>> test = "test"
>>> mdc = MulticastDataClient()
>>> mdc.add(test) # added into an internal list that is sent to all users
# here we can see that we are successfully receiving the data
>>> print mdc.receive()
{'192.168.1.10_0': 'test'}
# now we try to change the value of test
>>> test = "this should change"
>>> print mdc.receive()
{'192.168.1.10_0': 'test'} # want 'test' to change to -> 'this should change'
我如何能解決這個問題的任何幫助將是非常讚賞。
UPDATE:
我也這樣嘗試過,以及:
>>> test = [1, "test"]
>>> mdc = MulticastDataClient()
>>> mdc.add(test)
>>> mdc.receive()
{'192.168.1.10_1': 'test'}
>>> test[1] = "change!"
>>> mdc.receive()
{'192.168.1.10_1': 'change!'}
該做的工作。 但是,
>>> val = "ftw!"
>>> nextTest = [4, val]
>>> mdc.add(nextTest)
>>> mdc.receive()
{'192.168.1.10_1': 'change!', '192.168.1.10_4': 'ftw!'}
>>> val = "different."
>>> mdc.receive()
{'192.168.1.10_1': 'change!', '192.168.1.10_4': 'ftw!'}
這是行不通的。我需要'ftw!'變得「不同」。在這種情況下。 我正在使用字符串進行測試,並使用字符串作爲來自其他語言的對象。我只會編輯對象內部的內容,這樣最終會起作用嗎?
你是什麼意思「我只會編輯對象內的內容「? – 2011-05-31 20:52:45
@rshallit所以如果我們有一個名爲「pos」的位置對象,我只能操作pos.x和pos.y,您不必擔心「pos」在內存中改變其位置。我想這對我來說是多餘的。 – 2011-05-31 23:45:25