pythonclass全局变量_python怎么使用全局变量
在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉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怎么使用全局变量相关推荐
- python局部变量转全局变量_python局部变量和全局变量
python局部变量和全局变量 发布时间:2020-08-31 00:01:13 来源:51CTO 阅读:98 作者:qq5d6f345f0205e 在python开发中,变量也是有生命周期的,一旦周 ...
- python跨文件全局变量_Python跨文件全局变量的实现方法示例
前言 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void test(void) { a = 1; // 没有先声明, ...
- python多线程共享全局变量_Python多线程-共享全局变量
多线程-共享全局变量 import threading import time g_num = 200 def test1(): global g_num for i in range(5): g_n ...
- python 库 全局变量_python局部变量和全局变量global
当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的.这称为变量的 作用域 .所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开 ...
- python跨文件全局变量_Python跨文件全局变量的使用
尽管某些书籍上总是说避免使用全局变量,但是在实际的需求不断变化中,往往定义一个全局变量是最可靠的方法,但是又必须要避免变量名覆盖. Python 中 global 关键字可以定义一个变量为全局变量,但 ...
- python声明全局变量_python怎样声明全局变量
python中定义全局变量可以使用global关键字 global介绍 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是 ...
- python中全局变量_python如何使用全局变量
python全局变量的使用:1.引用全局变量,代码为[if i in b:print("%d in list b" %i)]:2.修改全局变量,代码为[print "be ...
- python怎样设置全局变量_Python教程之全局变量用法
本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量的问题,才发现其中原来还有门道. ...
- python 使用全局变量_Python教程之全局变量用法
Python教程之全局变量用法 本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量 ...
最新文章
- 操作系统是计算机软件的核心 它直接监管,华工 网络 操作系统课后作业
- Linux学习系列之Mount
- DebugView使用笔记
- oracle客户端和ssh区别,oracle 使用SSH 转发功能
- 通过shell访问hive_【HIVE】SHELL调用Hive查询
- java初学试题_JAVA 适合初学者的试题?
- 材料凝固计算机模拟,颗粒增强金属基复合材料凝固过程的计算机模拟_谢国宏.pdf...
- XenCenter开启虚机提示VDI不可用
- Unity3D 中的定制特性以及简单的编辑器扩展案例(1)
- 金山毒霸 2011 SP2 论坛内测开始
- 移动、联通、电信三大运营商手机号段大全 附手机号正则表达式
- 集中不等式 (Concentration inequality)
- 关于围棋的基本功(转)
- maven学习记录:maven专栏简介
- 电子元器件简介——芯片封装篇
- (2/3) c++ 集成 使用 steam api steam sdk
- 【游戏编程扯淡精粹】如何学习编程语言
- 跨境电商业务拓展专用服务器,腾讯云海外轻量应用服务器
- 从雄心创业到无奈打工,我与SEO的爱恨情仇
- Winbox v3使用介绍