测试Python中变量存在性的最佳方法

Best way to test for existence of a variable in Python

本问题已经有最佳答案,请猛点这里访问。

我正在读超过一百万个文件来搜集一些数据。这些文件通常都很统一,但有时会出现一些问题,我希望能找到的东西不存在。

例如,我期望一些SGML代码来标识我需要的值

1
2
3
for data_line in temp  #temp is a list of lines from a file
    if <VARIABLENAME> in data_line:
        VARIABLE_VAL=data_line.split('>')[-1]

后来我用了VARIABLE_VAL。但我有时会得到一个例外:文件中没有

1
<VARIABLENAME>theName

要处理此问题,我在处理完所有行后添加了此行:

1
2
3
4
5
try:
    if VARIABLE_VAL:
        pass
except NameError:
    VARIABLE_VAL=somethingELSE

我在某个地方(但我再也找不到)看到了一个解决方案

1
2
if not VARIABLE_VAL:
    VARIABLE_VAL=somethingELSE

任何帮助都将不胜感激


只需在循环之前将变量初始化为其默认值:

1
2
VARIABLE_VAL = somethingELSE
for dataline in temp: ...

这样,除非绑定到循环中的其他内容,否则VARIABLE_VAL将保留其初始默认值,并且您不需要任何奇怪的测试来确保这一点。


亚历克斯的解决方案是正确的。但是,如果您想测试变量是否存在,请尝试:

1
2
if 'VARIABLE_VAL' in locals():
    ....