在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉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学习网)

pythonclass全局变量_python怎么使用全局变量相关推荐

  1. python局部变量转全局变量_python局部变量和全局变量

    python局部变量和全局变量 发布时间:2020-08-31 00:01:13 来源:51CTO 阅读:98 作者:qq5d6f345f0205e 在python开发中,变量也是有生命周期的,一旦周 ...

  2. python跨文件全局变量_Python跨文件全局变量的实现方法示例

    前言 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void test(void) { a = 1; // 没有先声明, ...

  3. python多线程共享全局变量_Python多线程-共享全局变量

    多线程-共享全局变量 import threading import time g_num = 200 def test1(): global g_num for i in range(5): g_n ...

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

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

  5. python跨文件全局变量_Python跨文件全局变量的使用

    尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...

  6. python声明全局变量_python怎样声明全局变量

    python中定义全局变量可以使用global关键字 global介绍 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是 ...

  7. python中全局变量_python如何使用全局变量

    python全局变量的使用:1.引用全局变量,代码为[if i in b:print("%d in list b" %i)]:2.修改全局变量,代码为[print "be ...

  8. python怎样设置全局变量_Python教程之全局变量用法

    本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量的问题,才发现其中原来还有门道. ...

  9. python 使用全局变量_Python教程之全局变量用法

    Python教程之全局变量用法 本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量 ...

最新文章

  1. 操作系统是计算机软件的核心 它直接监管,华工 网络 操作系统课后作业
  2. Linux学习系列之Mount
  3. DebugView使用笔记
  4. oracle客户端和ssh区别,oracle 使用SSH 转发功能
  5. 通过shell访问hive_【HIVE】SHELL调用Hive查询
  6. java初学试题_JAVA 适合初学者的试题?
  7. 材料凝固计算机模拟,颗粒增强金属基复合材料凝固过程的计算机模拟_谢国宏.pdf...
  8. XenCenter开启虚机提示VDI不可用
  9. Unity3D 中的定制特性以及简单的编辑器扩展案例(1)
  10. 金山毒霸 2011 SP2 论坛内测开始
  11. 移动、联通、电信三大运营商手机号段大全 附手机号正则表达式
  12. 集中不等式 (Concentration inequality)
  13. 关于围棋的基本功(转)
  14. maven学习记录:maven专栏简介
  15. 电子元器件简介——芯片封装篇
  16. (2/3) c++ 集成 使用 steam api steam sdk
  17. 【游戏编程扯淡精粹】如何学习编程语言
  18. 跨境电商业务拓展专用服务器,腾讯云海外轻量应用服务器
  19. 从雄心创业到无奈打工,我与SEO的爱恨情仇
  20. Winbox v3使用介绍

热门文章

  1. redis主从复制原理、断点续传、无磁盘化复制、过期key处理
  2. Spring管理Bean的生命周期
  3. 呕心沥血为小白总结13个学习网站-错过了你注定绕弯!
  4. Elasticsearch系列「零」架构解析与最佳实践
  5. Java后台获取前端传递的日期解析不了
  6. jfinal框架中后台获取前端传递的参数
  7. mybatis中的查询
  8. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第五章——自编解析与答案
  9. Spring Boot——MyBatis配置带下划线命名的字段自动转换驼峰命名解决方案
  10. Matrix Power Series