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实现从脚本里运行scrapy的方法
Apr 07 Python
Django Highcharts制作图表
Aug 27 Python
django模板结构优化的方法
Feb 28 Python
使用Python实现企业微信的自动打卡功能
Apr 30 Python
python获取Linux发行版名称
Aug 30 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
jupyter lab文件导出/下载方式
Apr 22 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
python中元组的用法整理
Jun 15 Python
python中xlrd模块的使用详解
Feb 01 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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 Try Catch异常测试
2009/03/01 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
佳能英国官方网站:Canon UK
2017/08/08 全球购物
"序列点" 是什么
2016/07/29 面试题
采购助理岗位职责
2014/02/16 职场文书
安全生产责任书范本
2014/04/15 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
幼儿学前班评语
2014/12/29 职场文书
小学英语复习计划
2015/01/19 职场文书
英文导游词
2015/02/13 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
管理失职检讨书
2015/05/05 职场文书
团委副书记工作总结
2015/08/14 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏