python判断是空的实例分享


Posted in Python onJuly 06, 2020

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

if a is None:
    do something.else:
    do the other thing.

这样写看起来不错,但实际上会有问题。一般来讲,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

内容扩展:

如何判断python函数返回的是否是空

我不知道你这里的空是什bai么意思 是None还是‘'

我都都给你du讲讲:

None是一zhi个空dao的对象,代表什么都没有。

而'',是一个字符串对象,代表一个空的字符串

如果返回值是None,你就用 if None:判断

如果返回‘',你就用if len(‘') == 0:判断

网友分享:

可以直接bai把函数放到if后面当du作条件,如果为空的话zhi判断结果dao是false,例如:

def test():
    return None
     
if test():
    print True
else:
    print False

到此这篇关于python判断是空的实例分享的文章就介绍到这了,更多相关python怎么判断是空的内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python编码类型转换方法详解
Jul 01 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
Python操作Mongodb数据库的方法小结
Sep 10 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 Python
python 实现分组求和与分组累加求和代码
May 18 Python
使用pytorch实现线性回归
Apr 11 Python
python三引号如何输入
Jul 06 #Python
如何验证python安装成功
Jul 06 #Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 #Python
Keras实现DenseNet结构操作
Jul 06 #Python
基于Python和C++实现删除链表的节点
Jul 06 #Python
基于Python 的语音重采样函数解析
Jul 06 #Python
python interpolate插值实例
Jul 06 #Python
You might like
PHP中ob_start函数的使用说明
2013/11/11 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python中的reduce内建函数使用方法指南
2014/08/31 Python
Python中实现的RC4算法
2015/02/14 Python
python简单实现旋转图片的方法
2015/05/30 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
python素数筛选法浅析
2018/03/19 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
利用python开发app实战的方法
2019/07/09 Python
python设置表格边框的具体方法
2020/07/17 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
诉讼授权委托书
2014/10/15 职场文书
群众路线个人整改措施
2014/10/24 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python