2020年1月2日 / 4,831次阅读 / Last Modified 2020年1月2日
像python这样的动态脚本编程语言,变量的使用无需事先申明,在解释执行的过程中,如果发现有一个变量还不存在,就抛出NameError异常。这跟编译型的C/C++很不一样,编译型的语言,在编译过程中,就能够发现代码中是否存在没有申明的变量。而动态脚本语言,只有在执行过程中,才有可能处罚这样的错误。于是,python编程有了一个需求,如何判断一个变量是否存在?
前文说了,python解释器在执行代码的过程中,遇到不存在变量,还会抛出NameError异常,我们可以利用这个特点来判断变量是否存在。
>>> try:
... p = p
... except NameError:
... print('p is not defined yes')
...
p is not defined yes
以上代码在执行过程中,如果p没定义,就进入异常,如果p定义了,p=p也不会影响p的值。
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
前一篇:在python中做时间比较
后一篇:python编码时,长字符串如何换行?
©Copyright 麦新杰 Since 2019 Python笔记