我遇到了使用以下语句的图像处理代码:
#args is a dictionary
if not args.get("video",False)
get()方法返回:
如果key在字典中,则指定key的值。
如果找不到密钥并且未指定值,则为None。
如果未找到键并指定了值,则为value。
但是字典中有一个关键的“视频”,它是视频文件的路径,以后以这种方式使用:
if args.get("video")
因此args.get(“ video”)会提供文件的路径。我的问题是,这是否是'if'的有效语法,还是我遗漏了某些东西?
问题来源:stackoverflow
是的,这是有效的。
只要不是“”
,str
就会返回True
。
根据文档-真值测试:
可以测试任何对象的真值,以在if或while条件中使用或用作以下布尔运算的操作数。
默认情况下,除非对象的类定义了布尔型()方法来返回False或len()方法来返回零,否则该对象被认为是true 。以下是大多数被认为是错误的内置对象:
•定义为false的常量:None
和False
。
•任何数字类型的零:0
,0.0
,0j
,Decimal(0)
,Fraction(0,1)
•空序列和集合:''
,()
,[]
,{}
,set()
,range(0)
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。