python-3.x - 为什么“全局”在“如果”中不起作用?
问题描述
为什么在一个函数中尝试global
在一个 in if 中使用它时,即使if
不满足条件,它仍然有效?
例子:
>>> x=4
>>>
>>> def show():
... a=10
... if a==15:
... global x
... x=22
...
>>> x
4
>>>
>>> show()
>>> x
22
>>>
有没有办法调节全局?
解决方案
这是因为global
关键字影响整个函数。它更像是一个解析器指令,而不是一些告诉 Python 解析器将标识符解释为全局的可执行代码。if
也就是说,放在一个or块里面没关系for
,只要解析器看到它,就会从它所在的行开始在整个函数中生效。
全局语句是适用于整个当前代码块的声明。
有没有办法调节全局?
有了上面的内容,我想没有直接的方法可以实现这一目标。如果您不希望它是全局变量,我建议您为变量使用不同的名称,并在需要时分配给全局变量。
推荐阅读
- class - 如何获取R中缺失值NA的类属性?
- objective-c - CFRelease CFMutableArrayRef 内容的正确方法
- r - 如何在R中创建索引为两分钟的数据框
- python - 如何对两个不等长的 tf.datasets 进行成对迭代?
- python - pandas 如何将datafram的列名作为值插入到mysql表中,而不是作为字段名插入
- php - 我无法在 Laravel 中使用路由和控制器查看创建的页面
- typescript - ThreeJS- TypeError: material.customProgramCacheKey 不是函数
- mysql - 在什么情况下主键应该是唯一的?
- r - 从 R 中的数据框创建子样本
- node.js - 使用 Noble 与 BLE 设备通信