[英]Understanding what sort of objects can be dictionary keys
我正在與一個SO用戶進行討論,我們正在嘗試確定一個Python模塊,當它保存在一個變量中時 - 例如sys
,在import sys
- 是可變的還是不可變的。
有沒有人有一個好的答案?
問題產生於討論什么類型的對象可以成為Python dicts
。 Python文檔聲稱“只有不可變元素可以用作字典鍵,因此只有元組而不是列表可以用作鍵。” 但是一個模塊 - 作為可變對象的一個例子 - 可以用作密鑰,如
x = {sys: 1}
Python文檔聲稱“只有不可變元素可以用作字典鍵,因此只有元組而不是列表可以用作鍵。” 但是一個模塊 - 作為可變對象的一個例子 - 可以用作密鑰
事情必須是不可變的才能被用作dict鍵並不完全正確。 相反,考慮進行==
比較的關於它們的一切都必須是不可變的。 ==
for modules按對象標識工作,所以做類似的事情
import sys
sys.foo = 3
不會更改用於==
比較的任何信息。 因此,它們可以用作dict鍵。
這是可變的。 你可以做這樣的事情:
>>> import sys
>>> sys.blah = 100
>>> sys.blah
100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.