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全局变量相关推荐

  1. python全局变量赋值报错_python全局变量、回调函数

    1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...

  2. python变量作用域图解_图解python全局变量与局部变量相关知识

    这篇文章主要介绍了图解python全局变量与局部变量相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 了解全局变量和局部变量之前,我们先来了解 ...

  3. [转载] python全局变量的使用

    参考链接: Python全局变量 问题提出,怎么记录汉诺塔问题中盘子移动的次数? def hanu(n,a,b,c):          if n==1 :                print( ...

  4. python全局变量(模块法和global)

    python全局变量(模块法和global) python中全局变量使用,一般有两种方法,使用global和使用模块 global 在python中,可以使用global声明一个变量为全局变量 1. ...

  5. Python全局变量的隐藏“窍门”

    Python全局变量是不符合参数传递的相关规律,所以很多人不愿意经常使用,除非在定义常量的情况下.一下要讨论的是关于全局变量的相关问题,发现其中隐藏的窍门.希望大家通过这篇文章有所收获. 程序大致是这 ...

  6. Python 全局变量、局部变量、静态变量 详解

    参考连接: 1. http://blog.csdn.net/eastmount/article/details/48766861 2. http://www.imooc.com/article/146 ...

  7. Python全局变量及Global关键字( Global variable in Python)

    目录 1. Python全局变量 2. 简单的示例 3. 全局变量的有效作用范围 4. 在函数内部修改变量 5. global关键字 6. 跨模块的情况 1. Python全局变量 Python全局变 ...

  8. python全局变量的声明和使用

    python全局变量的定义与使用 python全局变量的定义与使用 2019-03-06  梦寒与锁梦   阅 22418  转 2 使用全局变量分两步走: 1.定义 2.使用时再次声明 即全局变量在 ...

  9. python全局变量在整个程序内都有效_Python 全局变量使用

    在平时的开发中我们有时候会用到全局变量,但是很多开发语言不允许使用或者建议少使用全局变量,Python也是如此.但是有时候为了编写程序的方便和灵活,必须使用全局变量.这篇文章记录是我在使用Python ...

  10. Python全局变量跨模块变量定义和使用

    在同一个py脚本中,定义在所有函数之外的变量可以理解为全局变量,因为所有函数可以直接访问函数外的变量(但不能访问其他函数的私有变量),这里涉及到变量的作用域,一般分为函数作用域和全局作用域,函数作用域 ...

最新文章

  1. 黄聪:Microsoft Enterprise Library 5.0 系列教程(九) Policy Injection Application Block
  2. 20161228阅读笔记
  3. 高度固定,行数不固定的文字垂直居中问题
  4. 牛客 - 牛半仙的妹子图(并查集+bitset/克鲁斯卡尔重构树+主席树)
  5. python爬虫第一课 开发环境配置
  6. 以太坊智能合约 编译脚本
  7. 中国制造特斯拉亮相 中文车尾标亮了!网友:好抠吗?
  8. 【Elasticsearch】Elasticsearch 集群 运维 高性能 架构设计 高负载
  9. Java 发展简史:初生遇低谷,崛起于互联网
  10. 加密解密技术基础、PKI及创建私有私有CA
  11. 每日英语:6 Brainy Habits of the Wisest People
  12. 非常难得的 CMOS sensor 工作原理的深入技术科普
  13. mysql 日期表:工作日、周末、节假日,星期
  14. 谷歌浏览器安装失败,解决办法
  15. IDEA自定义注释模板
  16. 网站歌曲播放器php,推荐漂亮的flash网页MP3音乐播放器
  17. 离线数仓03-数仓分层业务逻辑
  18. 用matlab抽样定理验证,实验一 MATLAB验证抽样定理
  19. 如何预防 CSRF 攻击
  20. 支付宝app支付对接1

热门文章

  1. 深度残差网络+自适应参数化ReLU激活函数:调参记录2
  2. 群晖 NAS 中的 Audio Station 一直不能加载 NAS 中的音乐问题的解决方法及自定义音乐库文件夹方法.md
  3. harmonyos2.0手机,华为HarmonyOS 2.0将于6月2日发布,华为手机可一键升级
  4. Python 哥德巴赫猜想
  5. 基于JavaEE的人力资源管理系统的设计与实现任务书与开题报告
  6. matlab中如何定义局部变量,matlab局部变量定义 persistent
  7. 铀球(235U)的临界半径计算(1d,S8)
  8. 小学教师计算机国培培训总结,小学教师国培计划研修总结
  9. 龙芯CPU处理器和芯片资料介绍
  10. 如果在魔兽世界中,做一个合格野性德