用于临时变量赋值的Python上下文管理器
发布时间:2020-12-20 11:56:55 所属栏目:Python 来源:网络整理
导读:我经常需要暂时将变量的值替换为其他东西,做一些依赖于此变量的计算,然后将变量恢复为其原始值.例如: var = 0# Assign temporary value and do computationvar_ori = varvar = 1do_something_with_var() # Function that reads the module level var variab
我经常需要暂时将变量的值替换为其他东西,做一些依赖于此变量的计算,然后将变量恢复为其原始值.例如:
var = 0 # Assign temporary value and do computation var_ori = var var = 1 do_something_with_var() # Function that reads the module level var variable # Reassign original value var = var_ori 这似乎是使用上下文管理器(with语句)的明显机会. Python标准库是否包含任何此类上下文管理器? 编辑 我知道这种事情通常由其他更好的方法处理,而不是临时更改变量.然而,我并没有要求明显的解决方法. 在我的实际工作案例中,我无法改变do_something_with_var函数.实际上这甚至不是一个函数,而是一串代码,它在全局命名空间的上下文中作为一些元编程的一部分进行评估.我给出的例子是我能想到的最简单的例子,它保留了我对临时变量的问题.我没有要求获得我的示例代码的解决方法(正确版本),而是要在我的书面问题上得到答案. 解决方法
不,因为上下文管理器不能像调用那样在调用者的范围内分配变量. (任何认为你可以与当地人一起做或检查的人,尝试使用你在函数内部提出的上下文管理器.它将不起作用.)
有一些实用程序可以使用不是局部变量的东西,例如模块全局变量,其他对象属性和dicts ……但是它们是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |