深入理解python中的None对象

2023-11-09

1. None

 

None是python中的一个特殊的常量,表示一个空的对象,空值是python中的一个特殊值。数据为空并不代表是空对象,例如[],''等都不是None。None和任何对象比较返回值都是False,除了自己。

 

>>> L=[]
>>> L is None
False
>>> L=''
>>> L is None
False

None有自己的数据类型NontType,你可以将None赋值给任意对象,但是不能创建一个NoneType对象。

 

>>> type(None)
<class 'NoneType'>
>>> n=NoneType()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'NoneType' is not defined

2.False

 

需要注意一点:

 

>>> a=False
>>> not a
True

python中数据为空的对象在判断时的结果都为False,其中None,False,0,[],"",{},()都相当于False,即not None == not False == not '' == not 0 == not [] == not {} == not ()

3. is 和 ==

 

is表示的是对象标识符,用来检查对象的标识符是否一致,即两个对象在内存中的地址是否一致。在使用 a is b 的时候,相当于id(a)==id(b)
==表示两个对象是否相等,相当于调用__eq__()方法,即'a==b' ==> a.__eq__(b)

 

4. Python里和None比较时,为什么是 is None 而不是 == None

因为None在Python里是个单例对象,一个变量如果是None,它一定和None指向同一个内存地址。

 

>>> a=None
>>> b=None
>>> id(a)==id(b)
True

is None是判断两个对象在内存中的地址是否一致,== None背后调用的是eq,而eq可以被重载,下面是一个 is not None但 == None的例子:

 

>>> class test():
...     def __eq__(self,other):
...         return True
... 
>>> t=test()
>>> t is None
False
>>> t == None
True

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解python中的None对象 的相关文章

  • 熊猫 Between_time 布尔值

    我正在尝试创建一个列 如果行值落在时间 09 00 和 17 00 之间 该列将分配 true 我可以使用轻松选择这些时间between time但无法分配新列 aTrue False df df between time 9 00 17
  • Python 3.7 Windows 不支持 dbm.gnu 吗?

    做的时候 import dbm gnu 在适用于 Windows 的标准 Python 3 7 6 64 上 我得到 文件 C Python37 lib dbm gnu py 第 3 行 位于从 gdbm 导入 ModuleNotFound
  • 多处理与 gevent

    目前我正在使用带有发布 订阅模式的 Zeromq 我有一个要发布的工作人员和许多 8 个订阅者 所有人都会订阅 相同的模式 现在我尝试使用多处理来生成订阅者 它可以工作 我错过了一些消息 我使用多重处理的原因是在每条消息到达时对其进行处理
  • 如何将自定义 CSS 添加到脆皮表单?

    我正在尝试在脆皮表单的帮助下为我的网站创建一个响应式表单 我没有使用引导程序 我想将自定义 CSS 添加到脆皮表单以匹配我的整个网站 HTML
  • 将逻辑回归从 R 迁移到 rpy2

    我正在尝试使用 ryp2 进行逻辑回归 我设法执行它 但不知道如何从结果中提取系数和 p 值 我不想在屏幕上打印这些值 而是创建一个函数来独立使用它们 import rpy2 robjects as ro mydata ro r data
  • 在 python 中读取具有恶意字节 0xc0 的文件,导致 utf-8 和 ascii 出错

    尝试将制表符分隔的文件读入 pandas 数据帧 gt gt gt df pd read table fn na filter False error bad lines False 它会出错 如下所示 b Skipping line 58
  • 如何使用 cron 作业运行 python 文件

    您好 我创建了一个 python 文件 例如file example py 该文件将输出 sensex 值 假设该文件在linux系统上的路径为 Desktop downloads file example py 我通常会运行该文件pyth
  • 使用 pandas 插值将每月值转换为每日值

    我有 1000 列的 12 个平均每月值 我想使用 pandas 将数据转换为每日数据 我尝试过使用插但我得到了从 31 01 1991 到 31 12 1991 的每日值 这并不涵盖全年 一月份的值没有得到 我用了日期范围用于我的数据框的
  • 预期设备类型为 cuda 的对象,但在 Pytorch 中获得了设备类型 cpu

    我有以下计算损失函数的代码 class MSE loss nn Module metric L1 L2 norms or cosine similarity mode training or evaluation mode def init
  • 比较两个类似列表的对象的内容的最佳方法是什么?

    例如 当我必须比较两个类似数组的对象的内容时lists tuples or collection deques 不考虑对象的类型 我使用 list an arrayish list another arrayish 有没有更惯用 更快 更好
  • matplotlib 的上限/下限

    我想用误差线绘制一些数据点 其中一些数据点只有上限或下限 而不是误差线 所以我尝试使用索引来区分带有误差条的点和带有上限 下限的点 但是 当我尝试这样的事情时 errorbar x i y i yerr ymin i ymax i 我收到错
  • 获取小部件的背景颜色 - 真的

    我无法获取小部件的实际背景颜色 在我的特殊情况下 我在使用 QTabWidget 中的小部件时遇到问题 这是在Windows7上 因此 经典的小部件有一些灰色背景 而选项卡内的小部件通常用白色背景绘制 I tried def bgcolor
  • python seaborn:按色调显示 alpha

    在seaborn中 色调为组设置不同的颜色 我可以设置吗alpha取决于组中的JointGrid 或者甚至在单个数据点上 sns set theme jg sns JointGrid data df sns x x y y hue hue
  • 在 RGB 图像上绘制多类语义分割透明叠加

    我有语义分割掩码的结果 值在 0 1 之间 需要大津阈值来确定什么是积极的 我想直接在 RGB 图像上绘制 在 RGB 图像上每个预测类具有不同的随机颜色 我使用以下内容绘制了具有单一颜色的单个蒙版 是否有一个包或简单的策略可以为多类别做到
  • 如何将 tkinter 窗口放在其他窗口之上?

    我正在使用 Python 2Tkinter and PyObjC 然后我用py2app 该程序工作正常 但每当我打开该程序时 该窗口都会以隐藏状态开始 因此直到我单击扩展坞上的图标将其调出时 它才会出现 有什么方法可以控制这个 使窗口位于应
  • 如何在 Python 中从平面列表构建嵌套列表? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个简单的列表 例如 flat 1 1 1 1 1 1 1 2 2 2 1 2 2 3 我需要转换为嵌套列表 其中每个级别 破折号后跟数
  • 一旦玩家与矩形对象发生碰撞,如何从屏幕上删除它?

    in draw 函数 我试图在玩家 pos 敌人 pos 时删除矩形对象 但 del 不起作用 有什么办法可以彻底删除敌人的物体吗 是否有内置的 pygame 函数可以删除我不知道的对象 draw player def draw enemy
  • Python:定义多个相同类型的变量?

    可能是重复的 但至少我无法通过搜索这些术语找到答案 在Python中有没有更快的方法来做到这一点 level1 level2 level3 我试过了 level1 level2 level3 但这似乎创建了该对象的副本 这不是我想要的 和
  • 从纪元到相对日期的秒数

    我正在处理自纪元以来的日期 并且已经得到了 例如 date 6928727 56235 我想将其转换为另一种相对格式 以便我能够将其转换为与纪元相关的格式 使用 time gmtime date 它返回 year 1970 mon 3 da
  • 在 Python 中使用列表理解来执行类似于 zip() 的操作?

    我是一名 Python 新手 我想做的事情之一就是围绕列表理解进行思考 我可以看到这是一个非常强大的功能 值得学习 cities Chicago Detroit Atlanta airports ORD DTW ATL print zip

随机推荐

  • SpringBoot:构建一个SpringBoot项目

    文章目录 一 创建项目 1 点击 File gt Project 2 选择 Spring Initializr 3 填写项目基本信息 5 目录结果 6 pom xml 依赖 7 主函数入口 二 项目启动 测试 三 项目源码 SpringBo
  • MongoDB常见问题

    问题一 还原报错 root mongodb bin mongorestore h 127 0 0 1 27017 d runoob directoryperdb data db runoob 2022 12 19T19 47 23 909
  • [LeetCode-21]-Merge Two Sorted Lists(有序列表合并)

    文章目录 题目相关 Solution 不带头结点 增加头结点 使用递归 题目相关 题目解读 合并两个有序列表 并返回新列表 原题描述 原题链接 Merge two sorted linked lists and return it as a
  • 合并两个有序表到新的有序表

    系列目录 左右移动 旋转 数组元素 查找两个升序数组的中间数 判断数组的某一个元素的数量是否超过了整个数组数量的一半 文图介绍 将有序数组A和有序数组B合并得有序数组C A 1 2 3 4 5 B 2 3 4 5 6 C 1 2 2 3 3
  • java什么时候用异常_深入理解Java异常的使用场景

    最近在项目代码中 遇见异常滥用的情形 分析下会带来哪些后果 1 代码可读性变差 业务逻辑难以理解 异常流与业务状态流混在一起 无法从接口协议层面理解业务代码 只能深入到方法 Method 内部才能准确理解返回值的行为 可看一下代码 publ
  • 如何计算留存率(Hive Sql or Spark sql)

    在互联网行业中 用户在某段时间内开始使用应用 经过一段时间后 仍然继续使用该应用的用户 被认作是留存用户 这部分用户占当时新增用户的比例即是留存率 会按照每隔1单位时间 例日 周 月 来进行统计 顾名思义 留存指的就是 有多少用户留下来了
  • unistd.h文件

    转载地址 http baike baidu com link url nEyMMFYevs4yoHgQUs2bcfd5WApHUKx0b1ervi7ulR09YhtqC4txmvL1Ce3FS8xTKtWQuvmEBHC9xezMGpvGH
  • valgrind 在开发板上运行以及使用

    前言 bedug无处不在 今天花落我家 现象 一个月出现一次异常 难易复现排查 借助神器valgrind排查 1 下载及编译准备 下载地址 https www valgrind org tar jxvf valgrind 3 16 1 ta
  • java实用类之正则工具类

    正则工具类 public class PatternUtil 匹配邮箱正则 private static final Pattern VALID EMAIL ADDRESS REGEX Pattern compile A Z0 9 A Z0
  • EL文件上传

    一 通过时间修改与文件上传 weixin 43985399的博客 CSDN博客查询并添加相应的文件 二 编辑前端页面
  • [操作系统]3.内存管理

    和前面两篇是差不多的思路 仅为快速复习操作i系统基础知识点 例题暂无 考试不要参考 知识点来自王道操作系统 1 内存管理的基本要求和设定 内存管理主要完成的功能有 内存空间的分配和回收 地址转换 把逻辑地址转化为内存物理地址 内存空间的扩充
  • LUT学习了解

    知乎 LUT Lookup Table 颜色查找表 通过LUT可以将一组RGB值输出为另一组RGB值 从而改变画面的曝光与色彩 如果我们规定 当原始R值为0时 输出R值为5 当原始R值为1时 输出R值为6 当原始R值为2时 输出R值为8 当
  • Android开机服务启动流程

    在Android系统启动时候 会解析init rc文件 然后根据里面的定义 启动各种服务 如netd zygote servier manager等等 但这些服务之间其实是有依赖关系的 而且当其中的某个服务启动失败时 有时候会影响后续的服务
  • 火爆!GitHub 标星 144k 的前后端学习路线,2021 年最新整理,看完后不再迷茫不再徘徊

    正在光顾 CSDN 的你 好呀 我是沉默王二 上周在欣赏阮一峰老师的 科技周刊 时 发现了一个牛逼的学习路线 在 GitHub 上已经标星 144k 了 简直火爆 里面不仅涵盖了前端和后端的学习路线 还有运维的学习路线 作为一名程序员 如果
  • 计算机组成原理实验一报告——运算器

    一 实验目的 了解和掌握Am2901运算器的组成结构和工作原理 认识和掌握TEC 2机运算器的组成和工作原理 认识和掌握TEC 2机运算器相关控制信号的含义和使用方法 二 实验原理 Am2901运算器 1 Am2901 芯片内部组成结构 A
  • 276_Python_桌面的一个TXT文档里的内容,插入到Word文档的指定位置

    在当前Word文档的第几段插入内容 当你需要将一个TXT文档的内容插入到Word文档的特定位置时 你可以使用Python的docx库来处理Word文档 以及内置的文件操作功能来读取TXT文档 首先 确保你已经安装了docx库 如果没有 可以
  • 敏捷--寻求更小发布集

    鱼骨思维 核心主线 优先级模型 差异化功能 具有明显竞争优势的功能特性 搅局功能 瞄准并用于叫板差异化产品的功能特性 快速低价或者强势营销的方式进入市场 降成本功能 可以降低组织成本的功能 基础功能 参与市场竞争的必要性基础功能 mvp理解
  • FFmpeg降低编码延迟记录

    背景 最近使用FFmpeg编码时 264 265的软编和NVIDIA硬编 有不同程序的缓存 具体表现就是调用avcodec send frame多次后才能调用avcodec receive packet一次 自测x264缓存了40帧 h26
  • Linux_Vs2017 error pthread

    解决办法 右键 gt 属性 添加pthread
  • 深入理解python中的None对象

    1 None None是python中的一个特殊的常量 表示一个空的对象 空值是python中的一个特殊值 数据为空并不代表是空对象 例如 等都不是None None和任何对象比较返回值都是False 除了自己 gt gt gt L gt