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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
使用Python生成XML的方法实例
Mar 21 Python
Python 实现数据库更新脚本的生成方法
Jul 09 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
python如何通过实例方法名字调用方法
Mar 21 Python
django ajax json的实例代码
May 29 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
手动安装python3.6的操作过程详解
Jan 13 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Python实现冒泡排序算法的完整实例
Nov 04 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 Socket配置以及实例的详细介绍
2013/06/13 PHP
php写的AES加密解密类分享
2014/06/20 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
element中的$confirm的使用
2020/04/26 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现将元祖转换成数组的方法
2015/05/04 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python grpc超时机制代码示例
2020/09/14 Python
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
小学少先队活动方案
2014/02/18 职场文书
节能环保口号
2014/06/12 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
刑事和解协议书范本
2014/11/19 职场文书
交通事故起诉书
2015/05/19 职场文书
走进科学观后感
2015/06/18 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android