![用布尔表达式分配字符串[重复],第1张 用布尔表达式分配字符串[重复],第1张](/aiimages/%E7%94%A8%E5%B8%83%E5%B0%94%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%88%86%E9%85%8D%E5%AD%97%E7%AC%A6%E4%B8%B2%5B%E9%87%8D%E5%A4%8D%5D.png)
三元布尔表达式的工作方式如下:
>>> 2 and 3 or 43>>> 0 and 3 or 44
因此,此表达式:
openmode = IS_PY2 and 'w' or 'wt'
成为Python 2:
openmode = True and 'w' or 'wt'
openmode = 'w' or 'wt'
所以,我给
w。
在Python 3下,IS_PY2为False,给出:
openmode = False and 'w' or 'wt'
相当于
openmode = False or 'wt'
给予
wt。
所有这些都是明确地指定openmode用于文本文件,而不是二进制文件,这
w在Python2和
wtPython3中由指示。
虽然Python3
t模式是默认模式,但不必对其进行精确调整。
请参阅有关
wtmode的答案。
最后,我认为以下内容更具可读性:
openmode = 'w' if IS_PY2 else 'wt'
而这个简单得多:
openmode = 'w'
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)