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 15 Python
Python中多线程thread与threading的实现方法
Aug 18 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
Python设计模式之中介模式简单示例
Jan 09 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
Python3处理HTTP请求的实例
May 10 Python
django如何实现视图重定向
Jul 24 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python使用eval函数执行动态标表达式过程详解
Oct 17 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 implode()函数用法讲解
2019/03/08 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
brook javascript框架介绍
2011/10/10 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
pytorch 修改预训练model实例
2020/01/18 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
给学校建议书范文
2014/05/13 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
个人典型事迹材料
2014/12/30 职场文书
高一化学教学反思
2016/02/22 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server