【发布时间】:2016-01-14 16:55:26
【问题描述】:
我觉得在 python 中很奇怪的一点是无法做到:
In [3]: if x:
...: print y
...:
----> 1 if x:
2 print y
3
NameError: name 'x' is not defined
这导致将事物声明为 None 或诸如此类,或者使用 try/except 在这两种情况下都是更多代码。我的朋友曾经说过“你不想检查不存在的东西”,我不同意,因为你可以检查该项目是否存在,而不是现有项目是否有任何东西。一个从未存在过的虚构人物和一个现在还没有活着的死者之间是有区别的。
是否有任何语言允许这样做,它是否强大,或者会导致问题?
【问题讨论】:
-
这将被认为是任何语言的反模式,即使是允许它的语言......如果这就是你想要做的,还有其他机制来测试存在......但你通常只想检查value ... 如果您这样做了,您将无法判断您是因为变量不存在而没有输入 if 语句,还是由于变量为“falsey”而没有输入 if 语句
标签: python functional-programming computer-science