在单行中解释这个python命令



在开发QGIS处理插件的教程中,我发现了以下python3代码:

# Compute the number of steps to display within the progress bar and
# get features from source
total = 100.0 / source.featureCount() if source.featureCount() else 0
features = source.getFeatures()

我的问题是:这个单个是什么样的语言结构?线:

total = 100.0 / source.featureCount() if source.featureCount() else 0

这看起来很奇怪:首先是一个赋值,后面跟着一个if-else结构在同一行?? ?

这些被称为"条件表达式"。来自Python 3参考:

表达式x if C else y首先求条件,C而不是x。如果C为真,则计算x并返回其值;否则,计算y并返回其值。

你可以读作"returnxifC否则返回y.">

在对变量赋值时使用条件表达式,该变量取该条件表达式返回的值。

这个概念通常被称为"三元"。在许多其他语言中

最新更新