kmc*_*eng 2 python syntax-error
我(错误地?)在比较中使用'不是'并发现了这种奇怪的行为:
>>> a = 256
>>> b = int('256')
>>> c = 300
>>> d = int('300')
>>>
>>> a is not b
False
>>> c is not d
True
Run Code Online (Sandbox Code Playgroud)
显然我应该使用:
>>> a != b
False
>>> c != d
False
Run Code Online (Sandbox Code Playgroud)
但是由于小型测试案例,它在很长一段时间内都有效,直到我碰巧使用了495个.
如果这是无效的语法,那么为什么呢?我不应该至少得到警告吗?
对于较小的数字,Python正在重用对象实例,但对于较大的数字,它会为它们创建新的实例.
看到这个:
>>> a=256
>>> b=int('256')
>>> c=300
>>> d=int('300')
>>> id(a)
158013588
>>> id(b)
158013588
>>> id(c)
158151472
>>> id(d)
158151436
Run Code Online (Sandbox Code Playgroud)
这就是为什么a是b的,但c 不是 d.
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |