Python 全局变量与global关键字

​ 在Python的变量使用中,经常会遇到这样的错误:

local variable 'a' referenced before assignment

它的意思是:局部变量“a”在赋值前就被引用了。
​ 比如运行下面的代码就会出现这样的问题:

a = 3
def Fuc():print (a)a = a + 1
Fuc()

​ 但是如果把 a = a + 1 这一句删除又不会出现上述问题了

a = 3
def Fuc():print (a)
Fuc()

​ 原来,在Python中,a=3 定义了全局变量a,作用域从定义处到代码结束,在 a=3 以下的函数中是可以引用全局变量a的,但如果要修改函数中与全局变量同名的变量,则函数中的该变量就会变成局部变量,在修改之前对该变量的引用自然会出现未分配或未定义的错误了。

​ 如果确定要引用并修改全局变量必须加上global关键字

a = 3
def Fuc():global aprint (a)a=a+1
Fuc()

​ 注意要领:哪个函数需要修改全局变量,在函数中声明一下即可。

​ 但在 if _name_ == “main”:下,全局变量是一直保持的

a = 3
def Fuc():global aprint (a)  # 1a = a + 1
if __name__ == "__main__":print (a)  # 2a = a + 1Fuc()print (a)  # 3

​ 输出如下(Python3环境下):

3
4
5

三个print执行的顺序为:2, 1, 3 。

人生苦短,我用Python~

Python 全局变量与global关键字相关推荐

  1. Python全局变量及Global关键字( Global variable in Python)

    目录 1. Python全局变量 2. 简单的示例 3. 全局变量的有效作用范围 4. 在函数内部修改变量 5. global关键字 6. 跨模块的情况 1. Python全局变量 Python全局变 ...

  2. global在python_在Python中使用“global”关键字

    在Python中使用"global"关键字 我从阅读文档中了解到,Python有一个单独的函数命名空间,如果我想在该函数中使用全局变量,我需要使用global. 我正在使用Pyth ...

  3. Python中的global关键字的用法

    Python中的global关键字的用法 global的英文相比你肯定知道,全球的,总的.那么正Python编程语言中,结合global的中文意思你会更加的理解这个关键字的用法.我们使用global关 ...

  4. python设置全局变量失败_Python全局变量与global关键字常见错误解决方案

    在Python的变量使用中,经常会遇到这样的错误: local variable 'a' referenced before assignment 它的意思是:局部变量"a"在赋值 ...

  5. Python nonlocal 与 global 关键字解析

    nonlocal 首先,要明确 nonlocal 关键字是定义在闭包里面的.请看以下代码: x = 0 def outer():x = 1def inner():x = 2print("in ...

  6. python中的global是什么意思_Python中的global关键字,你了解吗?

    前言 今天来了解下 Python 中的 global 关键字. Python变量的作用域 实战案例演示之前,先要了解下 Python 的作用域. 曾经在闭包的文章 <python小课堂26 - ...

  7. Python全局变量和局部变量(超详细,纯干货,保姆级教学)

    全局变量定义: 在函数外部定义的变量.所有函数内部都可以使用这个变量. 局部变量定义: 在函数内部定义的变量.这个变量只能在定义这个变量的函数内部使用. 第一种:global定义全局变量在自定义函数内 ...

  8. python系统关键字_Python基础教程 - global关键字及全局变量的用法

    Python中global关键字主要作用是声明变量的作用域. 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void t ...

  9. 、简述global关键字的作用_二十三、Python变量作用域(局部变量和全局变量)

    变量的作用域 在Python中,变量的作用域指的是变量起作用的范围,不同的作用域内,虽然变量的名字相同,但是它们互不影响.变量按照作用域范围可分为局部变量和全局变量. 全局变量 全局变量是在函数定义和 ...

最新文章

  1. linux路由信息自动丢失,浅谈用expect实现路由器自动备份数据
  2. python如何读取txt文件-如何在python中读取文件夹中的txt文件列表
  3. v8-su-root
  4. mysql 管理端口_MySQL8新增管理端口
  5. 【网摘】Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明
  6. 【转载保存】Lucene7.1.0超详细的使用文档
  7. sql left join用法_图解 SQL 中 JOIN 的各种用法
  8. H G W S哪一个不是状态函数_HAWE哈威BVH11H/M/S/2-X24换向阀
  9. 第12章 粒子同心圆(《Python趣味创意编程》教学视频)
  10. sql 查询的在northern最大的价值(LAT_N),小于137.2345 ,在小数点后4 位截断
  11. 天书夜读:从汇编语言到Windows内核编程
  12. 详解tomcat的连接数与线程池--转载
  13. spark 两个rdd求交集,差集,并集
  14. 黑马程序员Spring视频教程,全面深度讲解spring5底层原理 学习笔记
  15. android音标,安卓系统如何正确显示音标
  16. 「猪齿鱼」助力汉得信息智能制造集中交付高效协同
  17. directadmin php5.6,directadmin教程
  18. 目前为止学习过的循环解析过程
  19. Multiple PDN Connectivity
  20. 教你用Python搞定视频剪辑

热门文章

  1. python opencv调用笔记本摄像头 - python
  2. [wp] 攻防世界-wtf.sh-150
  3. OutputCache 缓存 属性详解
  4. System.currentTimeMillis的性能真有如此不堪吗?
  5. 正则表达式忽略换行符
  6. sql2000各大版本比较
  7. 【JY】愿新年,胜旧年!祝贺与总结~
  8. Gvim快捷键分类总结
  9. 图片隐写 放大放大再放大_放大结论
  10. AOP、动态代理、CGlib(原理实践)