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
这应该是两个代码块, 可以直接写在一行吗? 这是什么用法?
在ide里, 如果换行, 会自动增加 \
.
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
这应该是两个代码块, 可以直接写在一行吗? 这是什么用法?
在ide里, 如果换行, 会自动增加 \
.
这样的写法叫条件表达式,是三目运算符的python版本,它们并不是两个“代码块”,而是一个表达式里的不同部分,类似的设计好像也存在在rust里。
https://docs.python.org/zh-cn...
1 回答9.5k 阅读✓ 已解决
2 回答5.1k 阅读✓ 已解决
2 回答3.5k 阅读✓ 已解决
3 回答4.4k 阅读
2 回答2.4k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
if 后置。
你可以理解成其他语言中的三元表达式,但 Python 里没有三目运算符,所以就写成了这个样子:
P.S. 我一直觉得这种写法可读性差的一哔……