zoukankan      html  css  js  c++  java
  • Python中is和==的区别

    通常我们写:

    1 if foo is None: pass

    这个写法与以下的写法有何区别呢?

    1 if foo == None: pass

    is当比较的是相同的对象实例时总是返回True。而==则完全决定于__eq__()方法的实现。

    例如:

    1 >>> class foo(object):
    2        def __eq__(self, other):
    3            return True
    4  
    5 >>> f = foo()
    6 >>> f == None
    7 True
    8 >>> f is None
    9 False
    Python中的对象包含三要素:id、type、value
    其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
    is判断的是a对象是否就是b对象,是通过id来判断的
    ==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
     1 >>> a = 1
     2 >>> b = 1.0
     3 >>> a is b
     4 False
     5 >>> a == b
     6 True
     7 >>> id(a)
     8 12777000
     9 >>> id(b)
    10 14986000
    11 >>> a = 1
    12 >>> b = 1
    13 >>> a is b
    14 True
    15 >>> a == b
    16 True
    17 >>> id(a)
    18 12777000
    19 >>> id(b)
    20 12777000

     

  • 相关阅读:
    R语言-基本图形
    R语言-基本数据管理
    R语言—图像初阶
    R语言-实用数据对象处理函数
    R语言-数据结构
    scipy 的K-means
    python 解析命令行
    读取视频
    skimage
    face_recognition
  • 原文地址:https://www.cnblogs.com/mmix2009/p/3220954.html
Copyright © 2011-2022 走看看