首页 > 后端开发 > Python教程 > 除了使用 locals() 之外,如何在 Python 中动态设置局部变量?

除了使用 locals() 之外,如何在 Python 中动态设置局部变量?

DDD
发布: 2024-12-05 06:07:12
原创
738 人浏览过

How Can I Dynamically Set Local Variables in Python Beyond Using `locals()`?

动态变量设置:超越 locals()

在 Python 中,如果变量名称本身是动态的,则动态设置局部变量会带来挑战。与流行的假设相反,对 locals() 字典的修改对于在函数内设置局部变量并不总是可靠的。

替代方法:

而不是依赖 locals( ),考虑以下因素替代方案:

  • 使用字典:
    创建一个字典并将动态变量名称分配给一个键。通过字典访问值。

    d = {}
    d['xyz'] = 42
    print(d['xyz'])  # Prints 42
    登录后复制
  • 使用类属性:
    定义一个类并将动态变量名称设置为属性。通过类实例访问值。

    class C:
        pass
    
    obj = C()
    setattr(obj, 'xyz', 42)
    print(obj.xyz)  # Prints 42
    登录后复制

理解 Locals() 行为:

虽然 locals() 可能在函数内部工作,因为对于编译器优化,需要注意的是直接修改 locals() 可能会导致意外结果。对返回字典的赋值是短暂的,将在下一次 locals() 调用时被覆盖。

IronPython 细节:

在 IronPython 中,locals() 的行为有所不同。以不同名称调用 locals() 会绑定到该名称所绑定范围的局部变量。但是,无法通过此绑定名称访问函数局部变量。

以上是除了使用 locals() 之外,如何在 Python 中动态设置局部变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板