三元布尔表达式的工作方式如下:
>>> 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条)