在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中测试变量是不是存在的最佳方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章