Python 全局变量与局部变量
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
开篇 本文通过一个案例说明 Python 中全局变量用法与 Java 的不同。(ps:一直在用 Java 的方式用 Python,所以踩了一个坑)觉得无聊可以直接看文末总结。 局部变量与全局变量的概念 以下摘自百度百科: 变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。 全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。 案例 如果按照 Java 的用法描述下面的 Python 代码段以及最终打印结果,那么会是以下这样: 定义了一个全局变量 a, 然 Python中的全局变量与局部变量是编程中非常基础但至关重要的概念。它们决定了变量的作用范围和生命周期,对于理解和编写有效的Python代码至关重要。 我们要明确什么是全局变量和局部变量。全局变量是在程序的任何地方都可以访问的变量,它可以被程序中的任何函数或对象引用。全局变量在程序开始执行时创建,直到程序结束时才销毁。而局部变量,也称为内部变量,是在函数或方法内部定义的变量,它的生命周期仅限于该函数或方法的执行过程中。当函数执行完毕,局部变量就会消失。 在Java中,如果你在函数内部修改一个全局变量,实际上是对这个全局变量进行操作。然而,Python与Java的处理方式有所不同。Python允许在函数内部定义同名的局部变量,这将创建一个新的局部变量,而不是修改全局变量。这意味着,即使函数内部有同名的变量,它也不会影响到全局变量。 例如,考虑以下Python代码: ```python a = 1 def func(): a = 2 print(a) func() ``` 在Java程序员看来,`func`函数应该修改全局变量`a`的值,使得打印结果为2。但在Python中,由于函数内部重新定义了`a`,这个`a`实际上是局部变量,与全局变量`a`无关。因此,函数外部的`a`保持不变,输出仍为1。 如果要在Python函数中修改全局变量,必须使用`global`关键字来声明。例如: ```python a = 1 def test(): global a a = a + 1 print(a) test() ``` 在这个例子中,`global a`告诉Python我们打算在函数`test`中使用全局变量`a`,而不是创建一个新的局部变量。因此,函数内部的`a`操作会影响到全局的`a`,输出将会是2。 需要注意的是,过度使用全局变量可能会导致代码难以理解和维护,因为全局变量的改变可能会影响到程序的其他部分。因此,一般推荐优先使用局部变量,并通过参数传递数据。只有在确实需要跨函数共享状态时,才考虑使用全局变量。 总结来说,Python中的全局变量和局部变量有其独特的规则。在函数内部定义同名变量时,Python会创建一个新的局部变量,除非使用`global`关键字显式地引用全局变量。理解这些规则对于编写清晰、可靠的Python代码至关重要。从其他编程语言转到Python的开发者应特别注意这一点,避免因误解而导致的错误。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![flv](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![flv](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 15
- 资源: 945
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
- 1
- 2
前往页