网站制作学习网Python→正文:python中is和==区别
字体:

python中is和==区别

Python 2024/12/7 19:56:39  点击:不统计

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

 python中有2个判断相等关系的关键词 is 和== 那他们有什么区别吗?看下面代码
   # -*- coding: utf-8 -*-
"""INFO"""


a = "ab"
b = "ab"
c = "a" + "b"
d = "".join(['a', "b"])
print(a is b) # 返回True
print(a == b) # 返回True
print(a is c) # True
print(a == c) # True
print(a == d) # True
print(a is d) # False


class D:
a = None
b = "ab"


d_obj = D()
print(d_obj.a is None) # True
print(d_obj.b == c) # True
print(d_obj.b is b) # True

d_obj2 = D()
print(d_obj == d_obj2) # False
print(d_obj is d_obj2) # False
print(d_obj.b == d_obj2.b) # True
print(d_obj.b is d_obj2.b) # True

d_obj2.change = "change"
print(d_obj == d_obj2) # False
print(d_obj is d_obj2) # False
   
总结
1. is 比较的是 id值,在相同的对象是一致的,不同对象 不一致
2. == 直接比较的是值, == 号的行为可以在类的 __eq__ 中重载
3. 可以通过 python -m dis xxx.py 运行测试看具体的代码执行编译程序

网站制作学习网Foasp.cn

·上一篇:python中的魔术方法 >>    ·下一篇:python 提高性能转换为c语言 >>
推荐文章
最新文章