global语句的作用

在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。

在python的函数使用时,经常会碰到参数定义的问题。如果不声明全局变量,会报错

count = 1

def cc():

count = count+1

cc()

Traceback (most recent call last):

File "", line 1, in

cc()

File "", line 2, in cc

count = count+1

UnboundLocalError: local variable 'count' referenced before assignment

意思是说count为局部变量,在使用它之前没有被赋值。在函数内无法直接使用全局变量。

num = 1

id(num)

Out[31]: 1886744032

def cc():

num = 2

print(id(num))

print(num)

cc()

1886744064

2

可以看出函数里面的num是局部变量,有什么办法能在函数内使用全局变量呢?根据官方文档,可以用global语句:

1.The global statement is a declaration which holds for the entire current code block. It means that the

2.listed identifiers are to be interpreted as globals. It would be impossible to assign to a global variable without global.

意思是说global语句可以声明一个或多个变量为全局变量。该声明仅在当前代码块中有效。除此之外,没办法访问全局变量。所以在函数中添加global声明:

def cc():

global count

count = count+1

print(count)

cc()

2

用global声明多个变量需要用逗号分隔:

num = 0

def cc():

global count,num

count = count+1

num = num+2

print(count,num)

cc()

3 2

# 可以函数中的global声明能够修改全局变量

num

Out[24]: 2

#

count

Out[25]: 3

在使用全局变量的场合,也可用类变量代替

class C:

count = 3

def cc():

count = C.count+1

print(count)

cc()

4

如果是想在函数中调用全局变量,这需要global声明。之后调用全局变量,全局变量的值也随之可能发生改变,如果是count = count+1这种再定义的时候,否则全局变量只是被调用。也可以通过class来调用变量的方法达到全局变量的效果

global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

本文标题: Python global全局变量函数详解

本文地址: http://www.cppcns.com/jiaoben/python/239980.html

python函数 global_Python global全局变量函数详解相关推荐

  1. Python中局部变量和全局变量的详解

    1.局部变量 定义: 局部变量,就是在函数内部定义的变量 约束: 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的 实例: def test1():a = 120print( ...

  2. python二元多次函数拟合_对python实现二维函数高次拟合的示例详解

    在参加"数据挖掘"比赛中遇到了关于函数高次拟合的问题,然后就整理了一下源码,以便后期的学习与改进. 在本次"数据挖掘"比赛中感觉收获最大的还是对于神经网络的认识 ...

  3. python二维图颜色函数_通过python改变图片特定区域的颜色详解

    通过python改变图片特定区域的颜色详解 首先让我祭出一张数学王子高斯的照片,这位印在德国马克上的神人有多牛呢? 他是近代数学的奠基人之一,与牛顿, 阿基米德并称顶级三大数学家,随便找一个编程语言的 ...

  4. python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

    python Format()函数的用法___实例详解(一)(全,例多) (格式化替换,关键字替换,列表字典替换,类格式化, 魔法函数格式化,对齐及填充格式化,format对齐打印) 本篇目录内容:

  5. 站长在线Python精讲:在Python函数中的默认参数详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中的默认参数详解>.本文的主要内容有:默认参数的概念和默认参数的示例.默认参数不能设置可变对象. 目录 1 ...

  6. 站长在线Python精讲:在Python中函数的定义与创建详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中函数的定义与创建详解>.本文的主要内容有:函数的定义.函数的定义规则.函数的创建. 目录 1.函数的定义 2 ...

  7. 站长在线Python精讲:在Python函数中参数传递的位置参数详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中参数传递的位置参数详解>.本文的主要内容有:实参和形参数量必须与定义时一致和实参和形参位置必须与定义时一 ...

  8. 站长在线Python教程精讲:在Python函数中的关键字参数详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中的关键字参数详解>.本文的主要内容有:关键字参数的含义和关键字参数的应用举例. 目录 1.关键字参数的含 ...

  9. Python中Print()函数的用法___实例详解(二)(全,例多)

    Python中Print()函数的用法___实例详解(二)(全,例多) 目录 十一.Print()小例子 十二.Print()中文输入显示乱码问题 十三.Print()写入文件 十四.print()在 ...

最新文章

  1. AJAX相关JS代码片段和部分浏览器模型
  2. 竹子博客Linux,linux学习--美化自己的centos7
  3. 字节跳动测试开发4轮面试_字节跳动2018招聘测试开发方向(第四批)
  4. pwmc语言调速程序_51单片机的直流电机PWM调速系统设计,正转反转,加减速,急停等,仿真和代码...
  5. 关于新的描述语言GEZEL的介绍
  6. STM32F4_USART配置及细节描述
  7. python注册系统_Python制作简易注册登录系统
  8. 【翻译】ASP.NET 4中的可扩展输出缓存
  9. Android下图片清晰度识别
  10. STM32MP157 三角函数运算花费时间比较
  11. Druid未授权访问利用
  12. git报错:index.lock File exists
  13. greenplum,teradata,presto,clickhouse四种分布式数据库的对比
  14. MYSQL优化之碎片整理
  15. 联想Lenovo IdeaPad-100s-14IBR安装win7系统
  16. 致程序员之家论坛的所有会员
  17. Shell编程规范与变量(shell编程规范,执行脚本文件的四种方式,管道符号与重定向,shell变量的作用于类型)
  18. R语言数据挖掘之关联规则
  19. TVS管选型指南,您不知道的都在这里
  20. 晶振工作原理及参数详解(最透彻)

热门文章

  1. 5.jQueryAjax
  2. 手把手带你写一个JavaScript类型判断小工具
  3. javascript 动态修改css样式
  4. 什么是css sprites,如何使用?
  5. 一步步构建大型网站架构 [转]
  6. Homebrew是什么?怎么关闭自动更新?
  7. tensorboard运行
  8. 【JS】使用变量作为object的key-方法汇总
  9. 【从入门到放弃】23种设计模式(1):设计模式综述
  10. p1164【立方体求和】