一个关于python代码写法的疑问?

open('record.txt','w') if not os.path.exists('record.txt') else None

看到这样的python代码, 意思明白, 也能运行.但很奇怪的是:

open('record.txt','w')if not os.path.exists('record.txt') else None

这应该是两个代码块, 可以直接写在一行吗? 这是什么用法?

一个关于python代码写法的疑问?
在ide里, 如果换行, 会自动增加 \.


回答:

if 后置。

你可以理解成其他语言中的三元表达式,但 Python 里没有三目运算符,所以就写成了这个样子:

python">c = a if a>b else b

// 等效于

if a>b:

c = a

else:

c = b

P.S. 我一直觉得这种写法可读性差的一哔……


回答:

这样的写法叫条件表达式,是三目运算符的python版本,它们并不是两个“代码块”,而是一个表达式里的不同部分,类似的设计好像也存在在rust里。
https://docs.python.org/zh-cn...

以上是 一个关于python代码写法的疑问? 的全部内容, 来源链接: utcz.com/p/938415.html

回到顶部