Python 全局变量与global关键字
​ 在Python的变量使用中,经常会遇到这样的错误:

local variable 'a' referenced before assignment

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

a = 3
def Fuc():print (a)a = a + 1
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)a =a + 1if __name__ == "__main__":print(a)  #3a = a + 1Fuc()     #4print(a)  #5

python使用全局变量的坑,要使用global相关推荐

  1. python 库 全局变量_python局部变量和全局变量global

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

  2. python中全局变量和局部变量关键字_Python中全局变量和局部变量的理解与区别

    前言 学过编程的人应该对全局变量与局部变量这两个名词并不陌生,Python也同多数编程语言一样,也有全局变量与局部变量的概念 但是与其他编程语言又有所不同 全局变量与局部变量两者的本质区别就是在于作用 ...

  3. (Python+Tensorflow)编程踩坑集锦

    (Python+Tensorflow)编程踩坑集锦 1 开发环境安装 推荐视频:https://www.icourse163.org/learn/PKU-1002536002?tid=14529374 ...

  4. 学好python需要哪些基础_学Python要避免哪些坑,如何巩固好基础

    学Python要避免哪些坑?零基础怎么入门Python?Python入门简单.语法简洁.功能强大,非常适合零基础入门IT行业的人学习.随着人工智能时代的来临,企业纷纷选择使用Python进行开发,Py ...

  5. python中全局变量_玩转Python,使用全局变量

    这是本专栏的第一篇文章,开设这个专栏的目的很单纯,就是向读者的各位展示Python编程的乐趣.我在工作中发现一个现象:热爱编程的人总是能从繁琐的任务中发现其中的乐趣,进而对这门语言了解的更深入.而只是 ...

  6. python中全局变量和局部变量关键字_Python中都全局变量和局部变量

    Python中都全局变量和局部变量 Python中都全局变量和局部变量 定义 全局变量:函数体之外定义的变量 局部变量:函数体之内定义的变量 下述代码中,t是全局变量,m是局部变量 t = 1 def ...

  7. Python——定义全局变量

    全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有对象或函数进行引用,全局变量的定义有利于程序的变量共享,简化了添加和修改的程序. ...

  8. Python定义全局变量的用法

    全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有对象或函数进行引用,全局变量的定义有利于程序的变量共享,简化了添加和修改的程序. ...

  9. python 定义全局变量

    python定义全局变量 全局变量可以在代码任意位置创建,能够被所有对象和函数引用,有利于变量的共享. 全局变量的定义: global+变量名 声明后引用: OLD_URL='http://oldbo ...

最新文章

  1. 串口 能 按位传输吗_六类网线能传输多少米?家装六类网线有必要吗?
  2. 2018年蓝桥杯B组题E题+快排
  3. 作者:谢华美(1976-),男,就职于中国人民银行征信中心数据部
  4. 20190730算法题存档
  5. Live CD|ISO
  6. MS CRM 2011 Audit
  7. Oracle 安装 RAC 11.2.0.4 centos7.4 -udev磁盘绑定/执行root脚本报错
  8. Spring @AutoWired实现原理
  9. 拼接SQL文的测试方法
  10. 如何在windows xp下实现声音内录
  11. 【ASP.NET MVC4】第一课:初识ASP.NET MVC,创建第一个ASP.NET MVC项目
  12. 网易云计算机系统有限公司,网易云音乐
  13. linux命令行显卡驱动,Linux下NVIDIA显卡驱动安装方法
  14. java计算机毕业设计南京新东方学校家校通系统源码+程序+lw文档+mysql数据库
  15. Linux之进程的前后台切换
  16. HTML tabindex用法及使用场景详解
  17. Error creating bean with name xxxxxxx
  18. wgs84坐标格式转换度分秒_使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换...
  19. C语言读配置文件-自动封装Windows系统服务--20210512
  20. 淘宝arduino虚拟键盘开发环境及对应键盘按键代码

热门文章

  1. JSF请求处理过程(二)请求处理过程总览(FacesServlet#service)
  2. 常用移动web开发框架
  3. 数据结构基础(19) --堆与堆排序
  4. JAVA编程多线程面试常见知识点灵魂拷问(一)
  5. String/StringBuffer/StringBuilder的执行效率以及区别
  6. elasticsearch部署
  7. 解决ajax重复提交问题?
  8. 第十三章 对文本进行排序、单一和重复操作:sort命令、uniq命令
  9. 干货!9种高性能可用高并发的技术架构
  10. Undedared identifier问题解决