`
mldxs
  • 浏览: 26323 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

python 局部变量和全局变量 global

 
阅读更多

当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。

使用局部变量

例7.3 使用局部变量

#!/usr/bin/python
# Filename: func_local.py


deffunc(x):
print'x is', x
x =2
print'Changed local x to', x

x =50
func(x)
print'x is still', x

(源文件:code/func_local.py

输出

$ python func_local.py
x is 50
Changed local x to 2
x is still 50

它如何工作

在函数中,我们第一次使用x的时候,Python使用函数声明的形参的值。

接下来,我们把值2赋给xx是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。

在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。

使用global语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

例7.4 使用global语句

#!/usr/bin/python
# Filename: func_global.py


deffunc():
globalx

print'x is', x
x =2
print'Changed local x to', x

x =50
func()
print'Value of x is', x

(源文件:code/func_global.py

输出

$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2

它如何工作

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。

你可以使用同一个global语句指定多个全局变量。例如global x, y, z



http://woodpecker.org.cn/abyteofpython_cn/chinese/ch07s03.html

分享到:
评论

相关推荐

    Python语言基础:局部变量和全局变量.pptx

    在Python编程语言中,了解和正确使用局部变量与全局变量是非常重要的基础知识。它们的主要区别在于作用域和可访问性。 **局部变量(Local Variables)**: 局部变量是在函数内部定义的,只在该函数的代码块中有效。...

    从局部变量和全局变量开始全面解析Python中变量的作用域

    在Python中,变量主要分为两种类型:局部变量(local variables)和全局变量(global variables)。 1. **局部变量**:在函数内部定义的变量被称为局部变量,它们只在该函数的范围内有效。当函数执行完毕,局部变量...

    Python局部变量与全局变量区别原理解析

    Python中的变量根据其作用范围分为局部变量和全局变量,它们之间的主要区别在于作用域和生命周期。下面我们将深入探讨这两种变量的原理以及如何在代码中使用它们。 1. 局部变量(Local Variables) 局部变量是在...

    Python3.5局部变量与全局变量作用域实例分析

    在Python编程语言中,变量的使用是至关重要的,而理解局部变量和全局变量的作用域则是编写清晰、可维护代码的基础。本文将深入探讨Python3.5中的局部变量和全局变量,以及它们的作用域。 1. **局部变量与全局变量...

    实例讲解Python中global语句下全局变量的值的修改

    如果不使用`global`关键字就尝试修改全局变量,那么Python解释器会默认创建一个同名的局部变量,并不会改变全局变量的值。 #### 实例分析:全局变量修改的细节 接下来,我们将通过一个具体的例子来深入理解如何...

    解析python的局部变量和全局变量

    Python中的变量根据其作用域分为两种主要类型:局部变量和全局变量。理解这两者之间的区别对编写有效的Python代码至关重要。 **局部变量**是指在函数内部定义的变量,它们的作用范围仅限于该函数。在函数执行完毕后...

    Python 全局变量与局部变量

    在这个例子中,`global a`告诉Python我们打算在函数`test`中使用全局变量`a`,而不是创建一个新的局部变量。因此,函数内部的`a`操作会影响到全局的`a`,输出将会是2。 需要注意的是,过度使用全局变量可能会导致...

    Python 专题六 局部变量、全局变量global、导入模块变量

    ### Python 专题六:局部变量、全局变量(global)与导入...通过以上三个部分的讲解,我们了解了Python中局部变量、全局变量以及导入模块变量的基本概念和使用方法。这些知识点对于编写清晰、高效的Python代码非常重要。

    Python全局变量与局部变量区别及用法分析

    本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下: 对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。 定义: 全局变量:在...

    全局与局部:Python变量作用域的探秘之旅

    当局部变量和全局变量名称相同时,局部变量会覆盖全局变量。例如: ```python greeting = "Hello, Universe!" def greet(): greeting = "Hello, World!" # 局部变量,覆盖了全局变量 print(greeting) greet() #...

    v-13-全局变量和局部变量.ev4.rar

    资源"python爱心代码高级-13-全局变量和局部变量.ev4.mp4"很可能是一个教学视频,详细讲解了如何在Python中使用这两种变量,包括它们的工作原理、用法以及最佳实践。观看此视频将有助于深入理解全局变量和局部变量,...

    第八天 08局部变量【千锋Python人工智能学院】1

    在Python编程语言中,变量根据其作用范围分为两种主要类型:局部变量和全局变量。局部变量是在函数内部定义的,它的作用范围仅限于该函数内部,这意味着一旦函数执行完毕,局部变量就会消失,无法在函数外部访问。...

    Python中关键字global和nonlocal的区别详解

    首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过,可以绕道。因为不经常写博客,而且是个Python小白,所以内容有些啰嗦。。。 两个关键词都...

    Python global全局变量函数详解

    比如,当我们在函数内对一个未声明为global的全局变量进行增加操作时,解释器会告诉我们这是一个未绑定局部变量错误(UnboundLocalError),因为Python解释器认为我们试图在使用一个没有在该作用域内声明的局部变量...

    python函数局部变量、全局变量、递归知识点总结

    Python中的函数局部变量和全局变量是编程中两个重要的概念,它们决定了变量的作用范围和生命周期。在函数内部定义的变量称为局部变量,仅在该函数内部有效。而在函数外部定义的变量,或者在顶级代码块(模块级别)...

    python基础 13 全局 & 局部变量, global & local (教学教程tutorial)

    python基础_13_全局_&_局部变量,_global_&_local_(教学教程tutorial)

    图解python全局变量与局部变量相关知识

    对于全局变量和局部变量,Python提供了两个关键字:`global`和`nonlocal`,这两个关键字用于在函数内部修改全局变量和嵌套函数的外部作用域变量。 `global`关键字可以用来在函数内部声明一个变量是全局变量。例如:...

    python中变量作用域及嵌套作用域.pdf

    变量搜索路径是:本地变量->全局变量,Python 会按照这个顺序来查找变量。如果找不到变量,将抛出异常。 在 Python 中,变量的作用域跟 Java 的作用域概念有一些不同。在 Python 中,变量的作用域是由文本决定的,...

    python数据清洗-17-局部变量.ev4.rar

    2. **Python局部变量**: - **定义与作用域**:局部变量是在函数内部定义的变量,仅在该函数内部有效,其他函数或全局环境无法访问。一旦函数执行结束,局部变量就会被销毁。 - **变量声明**:Python无需预先声明...

Global site tag (gtag.js) - Google Analytics