首页 > Python > 如何检查变量是否存在?

如何检查变量是否存在?

上一篇 下一篇

我想检查变量是否存在。现在我正在做这样的事情:

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 中根本没有帮助,因为即使检查也会引发异常。更好的主意是确保确实有一个值,一个可以用来决定它是否有效的值。那将是这样的:lastlastlast

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】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 230次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-17
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信图片 自适应 微信文章 微信公众平台 微信素材 企业网站 响应式 微信模板 单页式简历模板 html5
您可能会喜欢的其他模板