有哪种计算机语言知道检查不存在的变量和检查存在的变量之间的区别吗?

2024-03-28 10:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现python中有一个奇怪的地方,那就是无法做到:

In [3]: if x:
   ...:     print y
   ...:     

----> 1 if x:
      2     print y
      3 

NameError: name 'x' is not defined

这会导致声明为None或whatnot,或者使用try/except,这两种情况下的代码都更多。我的朋友曾经说“你不想检查一些不存在的东西”,我不同意,因为你可以检查项目是否存在,而不是现有项目是否有任何东西。一个从未存在过的虚构人物和一个现在已经不在人世的死者之间是有区别的。你知道吗

有哪种语言允许这样做,它是强大的,还是会引起问题?你知道吗


Tags: 项目nameinnone声明ifis地方
3条回答

当你是新手时,这似乎是一个好主意,但几乎总是无用的,比如在你应该使用列表时创建编号为item1itemN的变量。你可以做到:

try:
    x
except NameError:
    defined = False
else:
    defined = True

但通常有更好的方法来实现你的基本目标。你知道吗

Tcl允许您检查变量是否存在:

if {[info exists some_variable]} {
    puts "it exists"
} else {
    puts "it does NOT exist"
}

我不确定我是否会将其描述为“强大”本身,但它在某些情况下是有用的。你知道吗

任何强类型语言都有这一点,因为如果x不存在,程序就无法编译

相关问题 更多 >