python判断目录是否为空效率

阅读: 评论:0

python判断目录是否为空效率

python判断目录是否为空效率

在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:

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自动化测试资料、实例,加入我们~642830685。群!!

本文发布于:2024-02-04 23:18:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170718671960678.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:为空   效率   目录   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23