在Python中测试变量是不是存在的最佳方法[重复]

Posted

技术标签:

【中文标题】在Python中测试变量是不是存在的最佳方法[重复]【英文标题】:Best way to test for existence of a variable in Python [duplicate]在Python中测试变量是否存在的最佳方法[重复] 【发布时间】:2011-03-23 01:09:45 【问题描述】:

我正在阅读一百万多个文件以提取一些数据。这些文件通常非常统一,但偶尔会出现一些我希望找到的东西不存在的问题。

例如,我希望一些 sgml 代码来识别我需要的值

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。 但我有时会遇到一个异常:文件中没有一行有

<VARIABLENAME>theName

为了处理这个问题,我在处理完所有行后添加了这一行:

try:
    if VARIABLE_VAL:
        pass
except NameError:
    VARIABLE_VAL=somethingELSE

我在某个地方(但我再也找不到了)看到了一个看起来像

的解决方案
if not VARIABLE_VAL:
    VARIABLE_VAL=somethingELSE

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

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

VARIABLE_VAL = somethingELSE
for dataline in temp: ...

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

【讨论】:

谢谢亚历克斯,既然你给出了答案,我想象的结构就是这样,想象力【参考方案2】:

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

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

【讨论】:

如果 'VARIABLE_VAL' 不在 locals() 中怎么办 - 这是一个很好的答案,因为现在我有一些新的东西可以玩。我的意思是现在我可以了解当地人是什么,并且可以为我做些什么,非常感谢。 还有 globals() 包含来自全局命名空间的变量。在这里查看更多信息:faqs.org/docs/diveintopython/dialect_locals.html 祝你好运! 非常感谢,这真的很简洁,我认为它值得一试

以上是关于在Python中测试变量是不是存在的最佳方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以测试并给出真/假语句以查看文件是不是存在,Python [重复]

测试数据库中重复键的最佳方法

测试 MySQL 表中是不是存在行的最佳方法

测试 MySQL 表中是不是存在行的最佳方法

如何在python中测试变量是不是为空[重复]

Python:检查范围内是不是存在对象[重复]