zoukankan      html  css  js  c++  java
  • is is not == !=之间的区别

    简单来说,python中的is与is not运算符可判断两个对象是否为同一对象。
    若为同一个对象,则对象1 is 对象2为True 。
    反正,若非同一个对象,则对象1 is not 对象2为True

    要理解Python中的is和is not运算符,首先需要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、python type()(数据类型)和value(值)。

    is和==(is not和!=)都是对对象进行比较判断作用的。
    但对对象比较判断的内容并不相同。

    拿is和==为例,

    ==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:
    >>> a = 'iplaypython.com'
    >>> b = 'iplaypython.com'
    >>> a == b
    True

    is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。通过对下面几个列表间的比较,你就会明白is同一性运算符的工作原理:
    >>> x = y = [4,5,6]
    >>> z = [4,5,6]
    >>> x == y
    True
    >>> x == z
    True
    >>> x is y
    True
    >>> x is z
    False
    >>>
    >>> print id(x)
    3075326572
    >>> print id(y)
    3075326572
    >>> print id(z)
    3075328140

    可看出前三个例子都是True,而最后一个是False。
    x、y和z的值是相同的,所以前两个是True没有问题。
    至于最后一个为什么是False,看看三个对象的id分别是什么就会明白了。

    ==比较操作符:用来比较两个对象是否相等,value做为判断因素;
    is同一性运算符:比较判断两个对象是否相同,id做为判断因素。

    同理,
    !=比较操作符:用来比较两个对象是否不等,value做为判断因素;
    is not同一性运算符:比较判断两个对象是否不同,id做为判断因素。
  • 相关阅读:
    gitlab搭建
    java数组
    安裝nextcloud
    Spring的定时任务@Scheduled(cron = "0 0 1 * * *")
    java内存结构(下)
    java内存结构(上)
    多线程的三个特性
    @RequestBody用法
    SwaggerAPI注解详解(转载)
    在jpanel中添加jbutton并自由设置按钮大小和位置
  • 原文地址:https://www.cnblogs.com/yingqml/p/6994370.html
Copyright © 2011-2022 走看看