当前位置: 首页 > 面试题库 >

修改globals()的输出是否安全?

凌经赋
2023-03-14
问题内容

locals()函数的文档特别警告不要修改其输出,因为解释器可能无法反映本地范围的更改。我假设这意味着Python规范不需要它,即使它可以在CPython中工作。

我想知道globals()是否相同。文档中没有警告,但我感到奇怪的是,这会有所不同,因为每个函数显然在不同的范围内执行相同的操作。

如果安全的话,修改globals()的输出将改善我正在处理的项目的简单性和兼容性。


问题答案:

即使在CPython中,修改locals() 也不
可靠。它恰好在模块和类范围内工作,但是在函数内部失败(任何修改“都不会”,因为locals()在这种情况下提供了本地名称空间的副本,而不是对真实对象的引用)

但是,globals()有所不同,因为它 始终
引用模块名称空间,并且要求模块名称空间的行为类似于普通词典。因此,是的,缺少警告globals()并不是疏忽,实际上是允许的。



 类似资料:
  • 我使用空手道进行自动化测试,并利用Gitlab CI/CD管道在不同的管道中运行。是否可以在gitlab控制台中编辑输出? 现在,当空手道测试在管道中运行时,输出是典型的maven下载依赖项。 我希望输出显示空手道测试场景,并显示通过/失败测试的绿色/红色。

  • 问题内容: 我需要编写一个简单的基于终端的程序, 使用包裹在BufferedReader中的FileReader从文件中读取一些文本。 将文本打印到控制台,用户应该可以对其进行修改。 输入Enter + S后,程序应读取修改后的文本并将其保存回原始文件。 总而言之,这个想法是为没有GUI的类Unix环境编写一个文本编辑器。 但是,我在步骤2和3中遇到问题。 System.out打印的所有文本都是不

  • 我正在使用findByIdAndUpdate更新修改的表单字段。 它是否覆盖了文档中甚至未在表单中修改的所有字段?

  • 问题内容: 我了解jsonp是一种绕过相同原始政策的技术。基本上,您在脚本标签中引用json服务服务器端点,因为脚本标签不受SO策略的限制。 我的问题是:假设服务器具有一个为json提供服务的终结点,是否需要对服务器进行任何修改才能在客户端中使用jsonp? 我想不,但是想确定。 问题答案: 是的,JSONP呈现时略有不同,因此您的服务器需要支持它。 JSON看起来像这样: JSONP看起来像这样

  • In your test files, Jest puts each of these methods and objects into the global environment. You don't have to require or import anything to use them. 方法 afterAll(fn, timeout) Runs a function after al

  • 安全手机修改        在原密码修改界面点击“安全手机修改”进入安全手机修改密码界面,点击“发送验证码”,把您的账号手机号收到的短信验证码输入到验证码输入框内,输入2次您想修改的新密码(符合密码规则)点击确定,修改成功。