【发布时间】:2017-07-12 17:35:01
【问题描述】:
我一直在寻找,但找不到任何东西:https://docs.python.org/3/library/operator.html
两个派上用场的 PHP 示例:
echo $count ?: 10; //prints $count if $count is not empty string, null, false or 0, otherwise prints 10.
echo $a ?? $b ?? 7; //prints $a if $a is defined and not null, otherwise will print $b, otherwise 7
Python 中有等价的运算符吗?注意:
a if condition else b
并没有真正取代速记三元运算符,因为在速记版本的 PHP 中,条件和返回值是在一个元素中指定的。
【问题讨论】:
-
a or b如果a为真,则计算为a,否则为b。不完全相同,但在许多情况下有效。 -
@Toskan:要求一些适用于未定义变量的东西......这不会发生。在 Python 中,使用未定义的变量会引发异常。如果你想避免这种情况,不知何故,你将需要编写一堆样板文件。或者你可以将你的变量初始化为
None。 -
@Toskan:这在其他语言中也是一个错误——尝试在 C#、Swift 或 Kotlin 中使用 null 合并运算符,你会发现它根本不适用于未定义的变量。 Python 的工作方式相同,它的设计初衷不是为了让未定义变量的处理变得容易,如果您想要一个空值,请使用
None而不是 undefined。 -
如果我在这里完全诚实,Python 似乎在做你想做的事情方面做得很好(使用
.get()或其他),但你的主要抱怨似乎是因为 Python 的工作方式与 PHP 不同,这并不是一个真正可行的投诉。
标签: python python-3.x