求python高手解答python源码中False是什么意思,pythonfalse,x = a by = a
求python高手解答python源码中False是什么意思,pythonfalse,x = a by = a
x = 'a b'
y = 'a b'
x is y
False
为什么会是 false 呢? 空格有什么特殊的地方么?
http://stackoverflow.com/questions/2123925/when-does-python-allocate-new-memory-for-identical-strings
摘第一个答案的第一句话:每个python的实现都可以自由如何判断是寻找已经存在的相同值的对象引用还是分配新的空间
is是比较对象
==是比较值
对于字符串,你也可以用is比较,前提是要人工对字符串进行intern.
x = 'a b'y = 'a b'#intern(x) is intern(y)为True
对于空格的问题,是因为Python只会自动对0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz这样的字符串进行intern处理
参考: intern
对PyStringObject的认识(Intern机制)
intern处理的字符串可以在这找到
# a is b 判断的是 id(a) == id(b), 你打印他们的id,明显不同,所以为falseprint id(x)pirnt id(y)
如果想字符串比较请直接 a==b
ps:
Python中的对象包含三要素:id、type、value。其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。is判断的是a对象是否就是b对象,是通过id来判断的,==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
编橙之家文章,
相关内容
- python判断对象类型数组的方法,python判断对象数组,RT
- python伪造出一个正确的session id并进行不好的行为吗?,
- python给指定范围内循环变量方法是?,python变量,Hi,在
- Python flask只能return吗,pythonflaskreturn,from flask i
- Python猜数字游戏结果第一次不输出问题,python猜数字
- 关于设置WTForms初始化默认值的一个问题,wtforms初始化
- Python from tutorial.items import DmozItem报错问题,,items.py文件
- 多行python print信息中,怎么能目标是哪个print输出的呢
- 求问嵌套问题,列表里边可以放字典类型的数据吗?,
- python如何才能实时获取tcpdump的输出,pythontcpdump,linux
评论关闭