Ele*_*naT 3 python immutability
在Python中是否可以创建具有相同值的两个不可变对象?
所以你明白我的意思,这里有一些例子:
>>> a = 13
>>> b = 13
>>> a is b
True
>>> a = 13
>>> b = 26/2
>>> a is b
True
>>> a = 13
>>> b = int.__new__(int, 13)
>>> a is b
True
>>> a = 13
>>> b = int("13")
>>> a is b
True
Run Code Online (Sandbox Code Playgroud)
是否可以创建a并b具有相同的值但a is b返回False?刚刚学习......:D
当然,只需选择一个太大而无法缓存的值:
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = "hey"
>>> b = "hey"
>>> a is b
True
>>> a = "hey!"
>>> b = "hey!"
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)
只缓存小整数和短字符串(这取决于实现,所以你不应该依赖它).is应该只用于测试对象标识,从不用于测试相等性.
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |