判断python变量是否存在?

2020年1月2日 / 116次阅读 / Last Modified 2020年1月2日

像python这样的动态脚本编程语言,变量的使用无需事先申明,在解释执行的过程中,如果发现有一个变量还不存在,就抛出NameError异常。这跟编译型的C/C++很不一样,编译型的语言,在编译过程中,就能够发现代码中是否存在没有申明的变量。而动态脚本语言,只有在执行过程中,才有可能处罚这样的错误。于是,python编程有了一个需求,如何判断一个变量是否存在?

用try ... except ... 判断

前文说了,python解释器在执行代码的过程中,遇到不存在变量,还会抛出NameError异常,我们可以利用这个特点来判断变量是否存在。

>>> try:
...     p = p
... except NameError:
...     print('p is not defined yes')
...
p is not defined yes

以上代码在执行过程中,如果p没定义,就进入异常,如果p定义了,p=p也不会影响p的值。

使用locals()函数

locals()函数的作用,是以dict对象的方式,将所有局部变量显示出来。用locals()函数来判断某个局部变量是否存在的代码如下:

>>> 'a' in locals().keys()
True
>>> 'b' in locals().keys()
False

内置的vars()函数在不带参数使用时,效果跟locals一样。

还有人说可以用dir()函数,我看还是算了吧。使用locals()函数是语义最明确的。另外,如果是在函数中判断一个全局变量是否存在,使用globals()函数。

-- EOF --

本文链接:https://www.pynote.net/archives/1681

相关文章

    留言区

    电子邮件地址不会被公开。 必填项已用*标注


    前一篇:
    后一篇:

    More


    ©Copyright 麦新杰 Since 2019 Python笔记

    go to top