我不明白这行的含义:
parameter and (" " + parameter) or ""
其中参数是字符串
为什么通常要对python字符串使用and
和or
运算符?
假设您使用的值parameter
,但是如果值是None
,则您希望使用一个空字符串""
代替None
。您一般会做什么?
if parameter:
# use parameter (well your expression using `" " + parameter` in this case
else:
# use ""
这就是表达的意思。首先,你应该明白and
与or
运营商的作用:
a and b
返回b
如果是True
,否则返回a
。a or b
返回a
如果是True
,否则返回b
。所以,你的表情:
parameter and (" " + parameter) or ""
实际上等效于:
(parameter and (" " + parameter)) or ""
# A1 A2 B
# A or B
在以下情况下如何计算表达式:
parameter - A1
评估为True
:
result = (True and " " + parameter) or ""
result = (" " + parameter) or ""
result = " " + parameter
parameter - A1
是None
:
result = (None and " " + parameter) or ""
result = None or ""
result = ""
作为一般建议,使用A if C else B
表格表达式作为条件表达式更好,更易读。因此,您最好使用:
" " + parameter if parameter else ""
而不是给定的表达式。有关表达式背后的动机,请参阅PEP 308-条件if-else
表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句