python中三元运算符的缩写
我似乎记得三元算子存在性检验的删节。例如:python中三元运算符的缩写,python,conditional-operator,Python,Conditional Operator,我似乎记得三元算子存在性检验的删节。例如: a = None b = a if a else 'Not None!' # b is now 'Not None!' 我以为是这样的 a else 'Not None!' 但这不起作用。也许有另一种方法可以使用其他内置类型来缩写它?没有,没有可用的缩写 你在想一个或“不是一个!”相反 作为旁注:。。。如果其他的被称为一个;这是一个三元运算符,但这两个运算符之间的SQL也是如此。。。在里面表达式。不,没有可用的缩写 你在想一个或“不是一个!”相反
a = None
b = a if a else 'Not None!'
# b is now 'Not None!'
我以为是这样的
a else 'Not None!'
但这不起作用。也许有另一种方法可以使用其他内置类型来缩写它?没有,没有可用的缩写 你在想一个或“不是一个!”相反
作为旁注:。。。如果其他的被称为一个;这是一个三元运算符,但这两个运算符之间的SQL也是如此。。。在里面表达式。不,没有可用的缩写 你在想一个或“不是一个!”相反
作为旁注:。。。如果其他的被称为一个;这是一个三元运算符,但这两个运算符之间的SQL也是如此。。。在里面表达式。是的,在您的案例中有一个缩写
b = a or 'Not None!'
几乎相当于
b = a if a else 'Not None!'
唯一的区别是,在第一种情况下对a进行一次评估,在第二种情况下对a进行两次评估。在这两种情况下,放入b的值都是相同的
另外,请注意,在这两种代码中,如果a不是None,但仍然是False-y,则可能会得到意外的结果。考虑如果A是0,例如 < p>是的,在你的例子中有一个缩写。
b = a or 'Not None!'
几乎相当于
b = a if a else 'Not None!'
唯一的区别是,在第一种情况下对a进行一次评估,在第二种情况下对a进行两次评估。在这两种情况下,放入b的值都是相同的
另外,请注意,在这两种代码中,如果a不是None,但仍然是False-y,则可能会得到意外的结果。想想如果A是0,比如 < p>会发生什么?这对我来说确实没有意义。
a = None
b = a if a else 'Not None!'
你把b设置为非无!对于a的任何错误值,包括无
也许你在想
a = None
b = 'Not None!' if a is None else a
还是什么
不管怎样,除了那些你可以逍遥法外的情况
b = a or 'Not None!'
或
没有办法避免两次提到一个问题,这对我来说真的没有意义
a = None
b = a if a else 'Not None!'
你把b设置为非无!对于a的任何错误值,包括无
也许你在想
a = None
b = 'Not None!' if a is None else a
还是什么
不管怎样,除了那些你可以逍遥法外的情况
b = a or 'Not None!'
或
没有办法避免两次提及本应显而易见的问题。Post作为答案?值得注意的是,在else案例计算为False的某些上下文中,它们并不相同,如果您确实想要可读性,则应始终使用三元运算符。这主要是在旧代码中看到的,因为三元运算符不在旧版本的Python中。缩短时间并不能让事情变得更好。也许你在想:cond和x或者yWell,一些人喜欢的速记依赖于短路逻辑,错误是a或者“不是无!”。不过我不喜欢。缩写为三元运算符?这应该是显而易见的。Post作为答案?值得注意的是,在else案例计算为False的某些上下文中,它们并不相同,如果您确实想要可读性,则应始终使用三元运算符。这主要是在旧代码中看到的,因为三元运算符不在旧版本的Python中。缩短时间并不能让事情变得更好。也许你在想:cond和x或者yWell,一些人喜欢的速记依赖于短路逻辑,错误是a或者“不是无!”。不过我不喜欢。缩写为三元运算符?苏梅塔:D