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获取apk文件URL地址实例
Nov 01 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
Pytorch的mean和std调查实例
Jan 02 Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
在python中修改.properties文件的操作
Apr 08 Python
python datetime时间格式的相互转换问题
Jun 11 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
python 爬虫如何实现百度翻译
Nov 16 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获取地址栏信息的代码
2008/10/08 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
php去掉文件前几行的方法
2015/07/29 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
JavaScript 程序编码规范
2010/11/23 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python操作日期和时间的方法
2014/03/11 Python
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
英语道歉信范文
2014/01/09 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python