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 深入理解yield
Sep 06 Python
Python 列表list使用介绍
Nov 30 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
Python数据结构之单链表详解
Sep 12 Python
windows下安装Python的XlsxWriter模块方法
May 03 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
python3使用matplotlib绘制条形图
Mar 25 Python
使用python实现mqtt的发布和订阅
May 05 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
基于Python实现简单学生管理系统
Jul 24 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
基于php判断客户端类型
2016/10/14 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
javascript中typeof的使用示例
2013/12/19 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
JS获取时间的方法
2015/01/21 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
python操作 hbase 数据的方法
2016/12/18 Python
python使用udp实现聊天器功能
2018/12/10 Python
python实现可逆简单的加密算法
2019/03/22 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
Python的条件锁与事件共享详解
2019/09/12 Python
python 实现绘制整齐的表格
2019/11/18 Python
NumPy中的维度Axis详解
2019/11/26 Python
Tensorflow 实现释放内存
2020/02/03 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
投资协议书范本
2014/04/21 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
2015大一新生军训感言
2015/08/01 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python