dbl*_*iss 2 python module immutability
我正在与SO用户进行讨论,我们正在尝试确定Python模块是否在变量中保存 - 例如sys,跟随import sys- 是可变的还是不可变的.
有没有人有一个好的答案?
问题产生于讨论什么类型的对象可以成为Python的关键dicts.的Python文档宣称"只有不可变元件可以作为字典键,因此只有元组而不是列表可以用作键".但是一个模块 - 作为可变对象的一个例子 - 可以用作密钥,如
x = {sys: 1}
Run Code Online (Sandbox Code Playgroud)
Python文档声称"只有不可变元素可以用作字典键,因此只有元组而不是列表可以用作键." 但是一个模块 - 作为可变对象的一个例子 - 可以用作密钥
事情必须是不可变的才能被用作dict键并不完全正确.相反,考虑进行==比较的关于它们的一切都必须是不可改变的.==对于模块按对象标识工作,所以做类似的事情
import sys
sys.foo = 3
Run Code Online (Sandbox Code Playgroud)
不会更改用于==比较的任何信息.因此,它们可以用作dict键.
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |