今天,没状态看论文,但又不想浪费时间,就选择了多学点 Python 进阶的内容。主要是整理关于 global
的内容,并说说它与 return
的差别。内容很简单,只需要了解概念就行。
全局变量
首先,看一个常见的例子 - return
1 | def add(v1, v2): |
该函数实现的是,return
返回函数的最终结果,然后下面将值赋值给了变量 result
。
现在将其写成 global
的形式:
1 | def add(v1, v2): |
这个函数是生成了一个 global
变量 result,也就是说生成的变量 result
是全局变量。什么是全局变量呢?就是除了所在的函数,其他函数也能调用这个变量。即在函数以外的区域都能够访问这个变量。下面的例子就可以说明:
1 | # 没有 global 变量 |
上面的例子是没有 global
变量的例子,但是后面想访问 result
的时候,Python 解释器会报错。这是因为,在函数之外不能够调用这个在函数之内的变量。使用下面的全局变量就不会报错了:
1 | # 有 global 变量 |
实际上,在实际的工作中,我们应该避免使用 global
变量,因为有时候会将多余的变量引入全局作用域。
返回多个结果
在 Python 中,有时候你想返回多个结果,这时候该怎么做呢?方法一,可以使用前面的 global
来返回多个全局变量:
1 | def msg(): |
需要注意的是:这样的做法很不好,不建议使用这样的方法。下面提供其他两种高效的方法:
1 | # 仅使用逗号分隔,返回多个结果 |
这篇文章主要介绍了 global
的知识,仅作为一个了解。但在实际工作中,不建议使用 global
,除非你自己很了解你使用 global
的目的。