zoukankan      html  css  js  c++  java
  • python is ==

    在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、python type()(数据类型)和value(值)。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。

    Python中比较两个对象是否相等,一共有两种方法,简单来说,它们的区别如下:

    is是比较两个引用是否指向了同一个对象(引用比较)。

    ==是比较两个对象是否相等。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> a = [1, 2, 3]
    >>> b = a
    >>> b is a # a的引用复制给b,他们在内存中其实是指向了用一个对象
    True 
    >>> b == a # 当然,他们的值也是相等的
    True
    >>> b = a[:] # b通过a切片获得a的部分,这里的切片操作重新分配了对象,
    >>> b is a # 所以指向的不是同一个对象了
    False
    >>> b == a # 但他们的值还是相等的
    True

    实现原理

    is比较的是两者是否是同一个对象,所以比较的是内存地址(id是否相同)。

    ==是值比较。不可变对象,例如int,str,它会直接进行值比较

  • 相关阅读:
    Linux 显示当前时间
    Jenkins 更改工作目录;
    Jenkins 编译 .net 项目
    Jenkins 通过 maven 构建编译 JAVA 项目环境
    Jenkins
    Zatree
    Zabbix 邮件报警示例
    Zabbix 短信报警示例
    Linux 检测出口IP地址
    数据结构与算法面试题80道(4)
  • 原文地址:https://www.cnblogs.com/howhy/p/7591473.html
Copyright © 2011-2022 走看看