• 技术文章 >Python技术 >Python基础教程

    python中比较对象相等方法有哪些?区别是什么?

    小妮浅浅小妮浅浅2020-12-07 10:44:50原创3484

    我们在比较数目是否相等的时候,可以选择一些不同的方法来验证结果。在python中判断对象的相等就不是这么简单,因为也许是判断一个值,也是是判断一个类别,并不是我们在数学中针对于数量的判断。下面小编就为大家讲解两个判断对象的方法,以及在判断对象的区别上有什么不同。

    a = [1, 2, 3]
    b = [1, 2, 3]
    print(a is b)
    print(a == b)

    大家可以先猜猜结果是什么。我之前说了python的变量就是个便利贴,\[1, 2, 3\]都是直接赋值给两个变量,也就是说生成了两个对象,所以a,b指向的对象不一样。所以结果出来了,**第一个是False,第二个是True**。为什么呢?因为is比较的是对象相同不相同,但是==比较的是值相同不相同。如果打印两个id值的话,显然是不同的。

    print(id(a), id(b))# 结果1735698385160 1735679028936

    在用==进行判断的时候实际是调用魔法函数__eq__()来判断他们的值是否相等的。

    总的来说,我们在判断是否是同一个对象的时候就用is,不要用==,所以在判断该对象是什么类型的时候建议用is或者直接用isinstance()这个方法。

    class Person():
       pass
    p = Person()
    print(type(p) is Person)  # 结果 True

    总结:


    以上就是我们在python中判断相等所用到的is和==,在名称上都是简单好记,用法不难,但需要小伙伴们学习的时候进行区别和理解。

    专题推荐:python比较对象
    上一篇:python中用递归的方法实现斐波拉契数列 下一篇:python bin函数应用

    相关文章推荐

    • python比较字符串是否相等• python比较两个目录的文件是否相同• python比较运算符中大于等于且小于等于的表达方式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网