如果你想给一个在程序顶层的变量赋值(也就是说它不存在于任何作用域中,无论是函数还是类),那么你必须告诉 Python 这一变量并非局部的,而是全局(Global)的。我们需要通过 global 语句来完成这件事。因为在不使用 global 语句的情况下,不可能为一个定义于函数之外的变量赋值。
你可以使用定义于函数之外的变量的值(假设函数中没有具有相同名字的变量)。然而,这种方式不会受到鼓励而且应该避免,因为它对于Python教程的程序读者来说是含糊不清的,无法弄清楚变量的定义究竟在哪。而通过使用 global 语句便可清楚看出这一变量是在最外边的代码块中定义的。

案例(保存为 function_global.py):

def func():global xprint('x is', x)x = 2print('Changed global x to', x)func()
print('Value of x is', x)

输出:

x is 50
Changed global x to 2
Value of x is 2

它是如何工作的

global 语句用以声明 x 是一个python全局变量——因此,当我们在函数中为 x 进行赋值时,这一改动将影响到我们在主代码块中使用的 x 的值。

你可以在同一句 global 语句中指定不止一个的全局变量,例如 global x, y, z。

Python global 语句相关推荐

  1. Python的global语句

    http://www.cnblogs.com/cython/articles/2202287.html 如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全 ...

  2. global语句(python学习手册422页)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页)#实际上就是一个名为__builtin__的模块,但是必须要 ...

  3. python输入语句-python输入语句

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. python条件语句目录:1. 分支语句(if...else...)2. ...

  4. python基础常用语句-Python基本语句

    在学习W3Cschool python高级教程之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起 ...

  5. python语句解释_深入理解python with 语句

    深入理解python with 语句 python中with 语句作为try/finally 编码范式的一种替代, 适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的" ...

  6. python choose语句作用_理解闭包是如何与变量作用域相互影响的

    原文标题:KNOW HOW CLOSURES INTERACT WITH VARIABLE SCOPE 比如说你现在想要对一组数字进行排序,同时希望提高一组数字的优先级使这组数字优先显示.这种模式在展 ...

  7. Python简单语句

    Python简单语句 Python语句由关键字.标识符.表达式组成.语句的根本作用就是执行某些修改操作,让代码发挥作用去做某些事. 语句从执行结构上来分有顺序.条件.循环结构,这3种结构可以实现任何算 ...

  8. python global和nonlocal_python global和nonlocal用法解析

    python global和nonlocal用法解析 这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值 ...

  9. python的语句_Python的简单语句

    Python的简单语句包括: 1.表达式语句:主要用于交互式计算一个表达式的值,或用于过程的调用. 2.赋值语句:用于将名称绑定到值,或者修改对象的属性. 3.扩展的赋值语句:将二元运算符和赋值语句结 ...

最新文章

  1. 智能猫窝是如何诞生的?详解百度大脑的开放生态
  2. PHP pear安装
  3. 【C++深度剖析教程12】数组操作符的重载
  4. mysql mgr 配置_MySQL5.7 MGR安装配置
  5. 行业大牛都是同时掌握游戏建模和游戏原画的吗?
  6. Intel® Nehalem/Westmere架构/微架构/流水线 (8) - 重复字符串指令增强
  7. [jQuery]超出容器部分...
  8. 一个企业老板给毕业生的十七句话
  9. 舆情分析系统技术解决方案及作用
  10. 安卓系统如何访问wincc服务器,wincc客户端读取服务器数据库
  11. 动词ing形式的5种用法_动词-ing形式用法归纳
  12. 电商后台系统:管理后台之账号管理(一)
  13. 互联网时代产品研发的思考
  14. 如何html5将文字插入图片,如何在文字中加入图片?
  15. [Graphics]自组织植物建模方法(ContinousLassoBrush)
  16. java数据算法,验证身份证号码的合法性
  17. 防火墙服务器搭建与应用(1.0)
  18. 关于编程语言和编程工具
  19. js/javascript获取时间戳的5种方法
  20. 七零年代摄影师Robert Mapplethorpe

热门文章

  1. datetime 索引_超全的数据库建表/SQL/索引规范,适合贴在工位上!
  2. springMvc 乱码问题
  3. Proxmark3教程1:小白如何用PM3破解复制M1全加密门禁IC卡
  4. 嵌入式编程(一):51单片机如何将函数 定义到指定程序地址
  5. Innodb中常见SQL语句设置的锁类型
  6. java中的继承(一)
  7. 软件工程网络15个人作业3——案例分析
  8. 一步一步使用 DialogFragment 封装链式调用 Dialog
  9. Reflector.FileDisassembler的一个bug
  10. C#面向对象名词比较(三)