我想知道在代码之前的某个地方是否已经定义了一个数组。类似 a.exist()
的东西如果存在则给出 True,如果不存在则给出 False。
我尝试了 a.size:
,但如果数组尚不存在,它会给出一条错误消息,我想避免这种情况。
如果你想知道,要求这样做的情况是循环发生的。
原文由 user4770892 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想知道在代码之前的某个地方是否已经定义了一个数组。类似 a.exist()
的东西如果存在则给出 True,如果不存在则给出 False。
我尝试了 a.size:
,但如果数组尚不存在,它会给出一条错误消息,我想避免这种情况。
如果你想知道,要求这样做的情况是循环发生的。
原文由 user4770892 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要使用 try/except 块:
try:
_ = a.shape
except NameError:
print('a does not exist.')
except AttributeError:
print('a does not have a shape property.')
正如@padraic 指出的那样,这真的不应该首先发生。最好初始化变量(例如 a = None
),然后检查它们是否已设置(例如 if a: print('a is set') else: print('a has not been set')
)
原文由 Alexander 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
Python 有一些内置函数可以检查是否在当前/本地/全局范围内分配了变量。
例如,检查一个变量是否在当前本地作用域中定义使用:
但这不是好的 python,
try/except
更常见但为了完整性我认为值得一提的是你可以在没有任何尝试/例外的情况下完成它。另外值得一提的是
locals
和globals
。