返回介绍

其他访问全局变量的方法

发布于 2024-01-29 22:24:16 字数 554 浏览 0 评论 0 收藏 0

有意思的是,由于全局变量构成了一个被导入的对象的属性,我们能够通过使用导入嵌入的模块并对其属性进行赋值来仿造出一个global语句,就像下边这个模块文件的例子一样。这个文件中的代码先通过变量名然后通过索引sys.modules导入了嵌套的模块,其中包含了已载入的表(关于这个表的更多内容在第21章介绍):

运行时,这将会给全局变量加3(只有第一个函数不会影响全局变量):

这很有效,并且这表明全局变量与模块的属性是等效的,但是为了清晰地表达你的想法,这种方法要比直接使用global语句需要做更多的工作。

正如我们已经看到的,global允许我们修改一个函数之外的模块中的名称。还有一个类似的nonlocal,它也可以用来修改嵌套的函数中的名称,但是,要理解这有多大用处,我们需要首先概括地介绍嵌套函数。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文