本文最后更新于2018-6-20,可能会因为没有更新而失效。如已失效或需要修正,请联系我!

今天在用Python写程序时突然想起了Python变量作用域的问题,代码如下:

def run():global xx=3print(x)
run()
x+=1
print(x)

这段代码运行并不会出错,问题的关键主要在于global这个关键字,stackoverflow上有人问过类似的问题,url

主要的意思是在一个函数里如果把一个变量声明为global,那么这个变量就是全局的,

如果全局变量中不存在这个变量,那就新建一个全局变量。

然后我就写了另外一段有意思的代码:

#main.py
import main2
main2.first()
main2.then()
#main2.py
def first():global xx=0print(x)
def then():global xx+=1print(x)

这是在2个文件里的Python代码,可以正确运行。

这段代码的意思是Python的global声明的最大作用域是当前文件,并不能用其他文件里的全局变量。

在上面的代码中x的作用域是main2整个文件,而在main里是没有x这个变量存在的!

Python变量作用域问题相关推荐

  1. [python]变量作用域问题

    先列出参考链接: python变量作用域–作者:lovingprince python开发杂货铺:作用域的痛点-作者:Assassin python中在哪些情况下必须使用global来声明全局变量 p ...

  2. Python 变量作用域问题 函数名.变量名

    刚接触Python,主要想利用它做数据处理.我用的是Python2.7.5,win7系统 最近在看<机器学习实战>,第三章决策树中有一段代码,摘抄如下,对于用颜色标注部分,刚开始没看懂什么 ...

  3. Python 变量作用域与函数(4)

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  4. Python变量作用域(全局变量和局部变量)

    Python变量作用域(全局变量和局部变量) 所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用.有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只 ...

  5. Python变量作用域的规则以及如何搜索内置作用域

    喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!有不懂的问题可以私聊我哦! **作用域:**是指变量的生效范围,例如本地变量.全局变量描述的就是不同的生效范围 ...

  6. Python 变量作用域

    变量作用域(scope)在Python中是一个容易掉坑的地方. Python的作用域一共有4中,分别是: L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Glob ...

  7. 详解Python变量作用域

    本文暂时不讨论类定义中的变量(成员)作用域,改天可能会单独成文介绍. 变量作用域总起来说可以这么理解:1)在函数内如果只引用某个变量的值而没有为其赋新值,该变量为(隐式的)全局变量:2)如果在函数内某 ...

  8. Python 变量作用域和列表

    变量作用域 变量由作用范围限制 分类:按照作用域分类 全局(global):在函数外部定义 局部(local):在函数内部定义 变量的作用范围: 全局变量:在整个全局范围有效 全局碧昂量在局部可以使用 ...

  9. 【python教程入门学习】Python变量作用域(通俗易懂)

    Python 中变量的访问权限取决于其赋值的位置,这个位置被称为变量的作用域.Python 的作用域共有四种,分别是:局部作用域(Local,简写为 L).作用于闭包函数外的函数中的作用域(Enclo ...

最新文章

  1. shell下的进度条和最大最小平均值
  2. 监控服务器登录用户的操作脚本(linux下shell.sh)
  3. gmock学习01---Linux配置gmock
  4. python3闭包通俗解释_Python|闭包、装饰器,简单的实例,通俗的理解
  5. github详细搜索
  6. linux-用户-进程-文件的关系
  7. 阿里云成为MariaDB基金会白金会员 全球唯一入选云计算公司
  8. c语言求行列式的值原理,新手作品:行列式计算C语言版
  9. ELK详解(二十三)——elastalert告警优化
  10. 定时任务Quartz配置
  11. c++程序内嵌lua字节码
  12. KEIL5芯片包器件库的下载
  13. dnf一天能获得多少黑暗之眼_DNF:想快速积累史诗狗眼?这几个方法可别错过,一天最少四五个...
  14. STM32f103系列各个型号芯片之间的程序移植
  15. nginx代理frps后出现 http proxy request error: no such domain
  16. 优秀logo,最基础的设计技巧(二)
  17. CS全球排名44,复旦计科实力如何?
  18. Excel导出模板加数据时,下拉框丢失解决方案
  19. 计算机bios所以的英文翻译,电脑各种BIOS中英文对照翻译
  20. Lightgbm如何处理类别特征?

热门文章

  1. RDKit:基于RDKit的溶解度预测的机器学习模型
  2. Linux(CentOS 7)(64位)系统下安装Pymol(1.8.6)
  3. Couldn't start MySQL! while starting XAMPP
  4. 使用 conda 和 Jupyter 在 R 中实现数据科学分析
  5. Microbiome:污水处理厂的微型真核肠道寄生虫:多样性、活性和去除
  6. 绝望!导师只给我一周时间.......
  7. 哈钦森之问:动物的种类为何如此丰富?
  8. 为实现流行病预测:联邦政府在疫情暴发建模方面的努力和机遇
  9. 一顿“寄生虫大餐”,或能治好干净引来的免疫病
  10. 扩增子分析解读3格式转换,去冗余,聚类