前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python判断是否为空_python 判断对象是否为空

python判断是否为空_python 判断对象是否为空

作者头像
全栈程序员站长
发布于 2022-07-01 06:01:02
发布于 2022-07-01 06:01:02
11.4K01
代码可运行
举报
运行总次数:1
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:if a is None:

do something.

else:

do the other thing.

python学习网,大量的免费python视频教程,欢迎在线学习!

这样写看起来不错,但实际上会有问题。一般来讲,Python中会把下面几种情况当做空值来处理:None

False

0,0.0,0L

”,(),[],{}

其中None的特殊之处在于,它既不是数值0,也不是某个数据结构的空值,它本身就是一个空值对象。它的类型是NoneType,它遵循单例模式,也就是说,在同一命名空间下的所有None其实质上都是同一个空值对象。>>> id(None)

1795884240

>>> None == 0

False

>>> None == ”

False

>>> a = None

>>> id(a)

1795884240

>>> a == None

True

上面的判断显然不符合我们的期望:只有当a被显示赋值为None的情况下,a==None才为True。

那么,对于Python中更为广义的None值判断,我们应该怎么做呢?>>> a = ” #这里仅以空字符串为例,其他空值同样适用

>>> if a:

… print ‘a is not empty’

… else:

… print ‘a is a empty string’

‘a is a empty string.’

可以看出,if a的判断方式得出了我们想要的结果,那么if a的判断方式究竟是一个怎样的过程呢?

if a会首先去调用a的__nonzero__()去判断a是否为空,并返回True/False,若一个对象没有定义__nonzero__(),就去调用它的__len__()来进行判断(这里返回值为0代表空),若某一对象没有定义以上两种方法,则if a的结果永远为True

接下来验证一下上面的说法:>>>class A(object):

… def __nonzero__(self):

… print ‘running on the __nonzero__’

… return True

>>>class B(object):

… def __len__(self):

… print ‘running on the __len__’

… return False

>>> a, b = A(), B()

>>>if a:

… print ‘Yep’

… else:

… print ‘Nop’

running on the __nonzero__

Yep

>>>if b:

… print ‘Yep’

… else:

… print ‘Nop’

running on the __len__

Nop

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131245.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
请收下这只可爱的猫咪吧
制作一个盛放内容的盒子,在BlogRoot/themes/butterfly/layout/includes/head.pug最后一行加入如下代码:
唐志远
2023/08/01
2230
请收下这只可爱的猫咪吧
js实现:仿京东搜索栏随滑动透明度渐变
注意:不兼容IE8及以下,IE11和360的IE兼容模式测试通过====IE8不支持opacity
Rattenking
2021/01/29
2K0
js实现:仿京东搜索栏随滑动透明度渐变
JQuery 实现开发常用功能
标签克隆的两种实现方式: <body> <div> <p> <a onclick="Add(this)">+</a> <input type="text"/> </p> </div> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script> function Add(ths) {
王瑞MVP
2022/12/28
5.4K0
一个简单的图片列表动效
<!doctype html> <html> <head> <script src="jquery.js"></script> <script> $(document).ready(function(e) { var h=$(".list span").width() $(".list span").css("height",h) $(".list span").css("line-height",h+"px") $(window).resize( function(){ h=$(".lis
用户1730674
2018/05/02
8790
一个简单的图片列表动效
基于jQuery的公告无限循环滚动实现代码
基于jQuery的公告无限循环滚动实现代码,效果如下,多用于pc端电商网站之中不断的循环更新的公告消息。
王小婷
2018/12/21
4K0
jQuery基础--jQuery特殊属性操作
区别:html方法会识别html标签,text方法会那内容直接当成字符串,并不会识别html标签。
eadela
2019/09/29
2.2K0
MUI导航栏透明渐变----原生JS实现
首先声明:由于backgroundColor的值采用的是RGBA,IE8及以下不支持,所以此效果不支持IE8及以下的浏览器 此效果采用的RGBA做的透明渐变,所以CSS样式中的backgroundColor的值必须是RGBA css代码 body,p,h1{margin: 0;} .module-layer{ width: 100%; position: fixed; top: 0; left: 0; z-index: 100000; } .module-layer-
Rattenking
2021/01/29
5.4K0
纯CSS解决iOS下网页不满一屏header、footer随页面滚动问题
前端页面开发或是现在日渐增多的Hybird APP应用开发中,经常遇到模拟原生APP界面效果不佳情况,固定header、footer便是其中一种。
Power
2023/05/28
6630
浮动清楚浮动及position的用法
static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。
IT人一直在路上
2019/09/18
2.2K0
H5开发笔记
1.css实现自动隐藏scroll滚动条但不影响滚动功能 谷歌内核webkit .container::-webkit-scrollbar { display: none; //SafariandChrome } IE或者Firefox .container { -ms-overflow-style: none; //IE 10+ overflow: -moz-scrollbars-none; //Firefox } 2.浮层去除底部滚动 stopBodyScroll (isFi
无忧366
2021/01/06
8240
jQuery遮罩(Mask)及弹窗时禁止页面滚动实现
保险起见可以把 html 和 body 的高度都设置 100% ,如下,用添加 class 的方法实现:
德顺
2019/11/13
6.7K0
【如果你要学JS XIII】——实现放大镜效果、client&scroll属性、固定侧边栏
client翻译过来就是客户端,我们使用client系列的相关属性来获取元素可视区的相关信息。通过client系列 的相关属性可以动态的得到该元素的边框大小、元素大小等。
像素人
2023/12/26
5510
【如果你要学JS XIII】——实现放大镜效果、client&scroll属性、固定侧边栏
CSS3新特性应用之用户体验
一、光标 新增加not-allowed光标,不允许访问 隐藏光标,在触模应用上很有用,css2.1需要一个透明的图片来实现,而css3直接用cursor:none即可。 完整代码: curosr: url(transparent.gif'); cursor: none; 二、扩大热区 应用在小按钮的情况下,不好被鼠标点击到 代码如下: .btn{ position: relative; cursor: pointer; } .btn:after{ position: absolute
sam dragon
2018/01/17
8620
jQuery文档对象模型DOM的实际应用
DOM 在 JavaScript 课程中我们详细的探讨过,它是一种文档对象模型。方便开发者对 HTML 结构元素内容进行展示和修改。在 JavaScript 中,DOM 不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性、扩展性。
王小婷
2018/12/19
1.2K0
蒙层禁止页面滚动的方案
弹窗是一种常见的交互方式,而蒙层是弹窗必不可少的元素,用于隔断页面与弹窗区块,暂时阻断页面的交互。但是在蒙层出现的时候滚动页面,如果不加处理,蒙层底部的页面会开始滚动,实际上我们是不希望他进行滚动的,因此需要阻止这种行为。当弹出蒙层时禁止蒙层下的页面滚动,也可以称为滚动穿透的问题,文中介绍了一些常用的解决方案。
WindRunnerMax
2022/05/06
6.5K0
分享一个自用emlog手机底部导航加样式代码
看到很多朋友都要这个手机端底部导航索性就分享了,这玩意其实我也不是不舍得发,是懒得而已 这玩意我都是扣别人的所以这个东西自己扣就行了,如果你不会扣那我赶紧我分享出来你也不会用。
用户8099761
2023/05/11
7640
jquery学习
<1> jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。
菲宇
2019/06/13
2.3K0
jQuery
jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。
py3study
2020/01/16
4.2K0
使用dreamweaver制作采用DIV+CSS进行布局——美食甜品店铺加盟企业HTML静态网页 ——学生美食网页设计作品静态HTML网页模板源码
👨‍🎓静态网站的编写主要是用HTML DIV+CSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的前端Html5代码都是一致的,本网页适合修改成为各种类型的产品展示网页,比如美食、旅游、摄影、电影、音乐等等多种主题,希望对大家有所帮助。 🧡 【作者主页——🔥获取更多优质源码】 🧡 【web前端期末大作业——🔥🔥毕设项目精品实战案例(1000套)
IT司马青衫
2022/08/23
1.2K0
使用dreamweaver制作采用DIV+CSS进行布局——美食甜品店铺加盟企业HTML静态网页 ——学生美食网页设计作品静态HTML网页模板源码
CSS笔记(15)
overflow属性指定了如果内容溢出一个元素的框(超出其高度及宽度)时,会发生什么.
y191024
2022/09/20
1.2K0
CSS笔记(15)
相关推荐
请收下这只可爱的猫咪吧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验