python全局变量
1.全局变量
在计算机中,一切数据都可以当作变量。理论上讲,变量可以分为几种类型:
1)全局变量;
2)静态变量;
3)常量;
4)栈变量;
5)堆变量。
这些变量的不同在于作用域和生命周期是不同的。对于其中的全局变量来说,必须要注意是,其作用域属于全部,生命周期存在于进程整个时期。
2.python的全局变量
以前笔者写过一篇博客,是有关Golang语言的全局变量的(https://blog.csdn.net/wangzhezhilu001/article/details/91493594)。Golang中,全局变量属于包。在python中,全局变量的生命也属于模块(表现为单个python文件),而不是整个进程。
可以通过如下程序验证。先提供一个文件A.py
# A.py# ---- coding=utf-8--A--#def f(a):print(a)def main():global aa = 5f(a)if __name__ == '__main__':main()
再加上另一个调用程序B.py。
# B.py# ---- coding=utf-8----#from A import fdef main():global af(a)if __name__ == '__main__':main()
运行B.py,发现程序报错。会提示程序变量a不存在。其原因在于,全局变量a并未定义,而B文件的全局变量a的作用域和生命空间只属于B文件。
3.Python的全局变量的用法
python的全局变量的用法为:1)python的全局变量的作用域为特定模块之内;2)在函数内,如不加global关键字,则该变量为局部变量,如该变量未声明,如对变量进行修改,会出问题。
测试程序如下所示:
# C.py# ---- coding=utf-8----#a = 2def f(a):print(a)def main():a += 1f(a)if __name__ == '__main__':main()
该方法会提示a为本地变量。
要想使用,必须在函数内提供global关键字,才会让global变量起作用。
# C.py# ---- coding=utf-8----#a = 2def f(a):print(a)def main():global aa += 1f(a)if __name__ == '__main__':main()
4.Python的全局变量实质
python的全局变量的实质是:python在程序运行时,提供了一个__globals__字典,__globals__字典属于模块,并把全局变量放入字典里。这种方式,决定了python的全局变量不属于进程而属于模块。
python全局变量相关推荐
- python全局变量赋值报错_python全局变量、回调函数
1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...
- python变量作用域图解_图解python全局变量与局部变量相关知识
这篇文章主要介绍了图解python全局变量与局部变量相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 了解全局变量和局部变量之前,我们先来了解 ...
- [转载] python全局变量的使用
参考链接: Python全局变量 问题提出,怎么记录汉诺塔问题中盘子移动的次数? def hanu(n,a,b,c): if n==1 : print( ...
- python全局变量(模块法和global)
python全局变量(模块法和global) python中全局变量使用,一般有两种方法,使用global和使用模块 global 在python中,可以使用global声明一个变量为全局变量 1. ...
- Python全局变量的隐藏“窍门”
Python全局变量是不符合参数传递的相关规律,所以很多人不愿意经常使用,除非在定义常量的情况下.一下要讨论的是关于全局变量的相关问题,发现其中隐藏的窍门.希望大家通过这篇文章有所收获. 程序大致是这 ...
- Python 全局变量、局部变量、静态变量 详解
参考连接: 1. http://blog.csdn.net/eastmount/article/details/48766861 2. http://www.imooc.com/article/146 ...
- Python全局变量及Global关键字( Global variable in Python)
目录 1. Python全局变量 2. 简单的示例 3. 全局变量的有效作用范围 4. 在函数内部修改变量 5. global关键字 6. 跨模块的情况 1. Python全局变量 Python全局变 ...
- python全局变量的声明和使用
python全局变量的定义与使用 python全局变量的定义与使用 2019-03-06 梦寒与锁梦 阅 22418 转 2 使用全局变量分两步走: 1.定义 2.使用时再次声明 即全局变量在 ...
- python全局变量在整个程序内都有效_Python 全局变量使用
在平时的开发中我们有时候会用到全局变量,但是很多开发语言不允许使用或者建议少使用全局变量,Python也是如此.但是有时候为了编写程序的方便和灵活,必须使用全局变量.这篇文章记录是我在使用Python ...
- Python全局变量跨模块变量定义和使用
在同一个py脚本中,定义在所有函数之外的变量可以理解为全局变量,因为所有函数可以直接访问函数外的变量(但不能访问其他函数的私有变量),这里涉及到变量的作用域,一般分为函数作用域和全局作用域,函数作用域 ...
最新文章
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(九) Policy Injection Application Block
- 20161228阅读笔记
- 高度固定,行数不固定的文字垂直居中问题
- 牛客 - 牛半仙的妹子图(并查集+bitset/克鲁斯卡尔重构树+主席树)
- python爬虫第一课 开发环境配置
- 以太坊智能合约 编译脚本
- 中国制造特斯拉亮相 中文车尾标亮了!网友:好抠吗?
- 【Elasticsearch】Elasticsearch 集群 运维 高性能 架构设计 高负载
- Java 发展简史:初生遇低谷,崛起于互联网
- 加密解密技术基础、PKI及创建私有私有CA
- 每日英语:6 Brainy Habits of the Wisest People
- 非常难得的 CMOS sensor 工作原理的深入技术科普
- mysql 日期表:工作日、周末、节假日,星期
- 谷歌浏览器安装失败,解决办法
- IDEA自定义注释模板
- 网站歌曲播放器php,推荐漂亮的flash网页MP3音乐播放器
- 离线数仓03-数仓分层业务逻辑
- 用matlab抽样定理验证,实验一 MATLAB验证抽样定理
- 如何预防 CSRF 攻击
- 支付宝app支付对接1
热门文章
- 深度残差网络+自适应参数化ReLU激活函数:调参记录2
- 群晖 NAS 中的 Audio Station 一直不能加载 NAS 中的音乐问题的解决方法及自定义音乐库文件夹方法.md
- harmonyos2.0手机,华为HarmonyOS 2.0将于6月2日发布,华为手机可一键升级
- Python 哥德巴赫猜想
- 基于JavaEE的人力资源管理系统的设计与实现任务书与开题报告
- matlab中如何定义局部变量,matlab局部变量定义 persistent
- 铀球(235U)的临界半径计算(1d,S8)
- 小学教师计算机国培培训总结,小学教师国培计划研修总结
- 龙芯CPU处理器和芯片资料介绍
- 如果在魔兽世界中,做一个合格野性德