我想检查变量是否存在。现在我正在做这样的事情:
try:
myVar
except NameError:
# Do something.
还有其他方法无一例外吗?
网友回答:
在任何语言中,使用尚未定义或设置(隐式或显式)的变量通常是一件坏事,因为它往往表明程序的逻辑没有得到适当的考虑,并且可能导致不可预测的行为。
如果你需要在 Python 中执行此操作,以下技巧(与您的技巧类似)将确保变量在使用前具有一定的价值:
try:
myVar
except NameError:
myVar = None # or some other default value.
# Now you're free to use myVar without Python complaining.
但是,我仍然不相信这是一个好主意——在我看来,您应该尝试重构代码,以免发生这种情况。
作为一个例子,下面的注释中给出了以下代码,以允许从前一个点到当前点绘制线条:
if last:
draw(last, current);
last = current
在没有绑定到值的情况下,这在 Python 中根本没有帮助,因为即使检查也会引发异常。更好的主意是确保确实有一个值,一个可以用来决定它是否有效的值。那将是这样的:last
last
last
last = None
# some time passes ...
if last is not None:
draw(last, current);
last = current
这样可以确保变量存在,并且只有在它对您需要它的有效时才使用它。这就是我认为在注释代码中要做的事情(但没有),如果您无法控制变量的初始设置,您仍然可以使用上面的 exception 方法添加代码来强制执行此操作:if last
# Variable 'last' may or may not be bound to a value at this point.
try:
last
except NameError:
last = None
# It will always now be bound to a value at this point.
if last is not None:
draw(last, current);
last = current
网友回答:
要检查局部变量是否存在,请执行以下操作:
if 'myVar' in locals():
# myVar exists.
要检查全局变量是否存在:
if 'myVar' in globals():
# myVar exists.
要检查对象是否具有属性,请执行以下操作:
if hasattr(obj, 'attr_name'):
# obj.attr_name exists.
网友回答:
一个简单的方法是首先初始化它myVar = None
然后稍后:
if myVar is not None:
# Do something
模板简介:该模板名称为【如何检查变量是否存在?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。