当前位置:首页 > Python技术文章 > Python全局变量用法实例分析

分享Python全局变量的用法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:73

这篇文章主要知识点是关于Python、全局变量、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

机器学习系统设计:Python语言实现
  • 类型:Python大小:84.5 MB格式:PDF作者:戴维·朱利安
立即下载

Python全局变量用法实例分析

本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下:

全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今天有同事问一个关于全局变量的问题,才发现其中原来还有门道。

程序大致是这样的:

CONSTANT = 0
def modifyConstant() :
    print CONSTANT
    CONSTANT += 1
    return
if __name__ == '__main__' :
    modifyConstant()
    print CONSTANT

运行结果如下:

UnboundLocalError: local variable 'CONSTANT' referenced before assignment

看来,全局变量在函数modifyConstant中边成了局部变量,似乎全局变量没有生效?

做点修改:

CONSTANT = 0
def modifyConstant() :
    print CONSTANT
    #CONSTANT += 1
    return
if __name__ == '__main__' :
    modifyConstant()
    print CONSTANT

运行正常,看来函数内部是可以访问全局变量的。

所以,问题就在于,因为在函数内部修改了变量CONSTANT,Python认为CONSTANT是局部变量,而print CONSTANT又在CONSTANT += 1之前,所以当然会发生这种错误。

那么,应该如何在函数内部访问并修改全局变量呢?应该使用关键字global来修饰变量(有点像PHP):

CONSTANT = 0
def modifyConstant() :
    global CONSTANT
    print CONSTANT
    CONSTANT += 1
    return
if __name__ == '__main__' :
    modifyConstant()
    print CONSTANT

就这么简单!

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

idea2020注册激活码(激活到2100年)

实例分析Java实现的zip压缩及解压缩工具类

python3 pandas 如何读取MySQL数据和插入

ThinkPHP3.2.3框架如何实现分页功能

深入理解JS函数stack size计算方法

展开 +

收起 -

Python 相关电子书
学习笔记
网友NO.325589

实例分析Python跨文件全局变量的实现方法

我们在使用Python编写应用的时候,有时候会遇到多个文件之间传递同一个全局变量的情况。所以下面这篇文章主要给大家介绍了关于Python跨文件全局变量的实现方法,需要的朋友可以参考借鉴,下面来一起看看吧,希望能帮助到大家。 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void test(void) { a = 1; // 没有先声明,所以用的是全局的变量a } void test1(void) { int a; a = 2; // 前面声明了,所以用的是局部变量a,对其所做的修改不会影响全局变量a } void main(void) { printf(before: a = %d\n, a); test(); printf(after test: a = %d\n, a); test1(); printf(after test1: a = %d\n, a); } 在python中,变量不需要先声明,直接使用即可。 Python跨文件全局变量的实现 Python 中 global 关键字可以定义一个变量为全局变量,但是这个仅……

网友NO.639616

Python中模块导入时全局变量__all__的作用

Python中一个py文件就是一个模块,__all__变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现。 1、在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中, 如:全局变量,函数,类。如下,test1.py和main.py test1.py __all__=[test]def test(): print(----test-----) def test1(): print(----test1----) main.py from test1 import * def main(): test() #test1() main() 两个文件在同一个目录下。 此时执行python main.py时结果如下: 但是如果放开main.py的注释后,如下: 那么在模块中的__all__变量就是为了限制或者指定能被导入到别的模块的函数,类,全局变量等,如果指定了那么只能是指定的那些可以被导入,没有指定默认就是全部可以导入,当然私有属性应该除外。 2、在包下的__init__.py中 sound/effects/__init__.py中添加__all__ = [echo, surround, reverse] 那么就会在from so……

网友NO.246168

python通过配置文件共享全局变量的实例

在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况,此时通过配置文件定义全局变量是一个比较好的选择。 首先配置config.py模块,config需要设置get_xxx和set_xxx的方法提供对外的接口。 config.py class global_var: '''需要定义全局变量的放在这里,最好定义一个初始值''' name = 'my_name'# 对于每个全局变量,都需要定义get_value和set_value接口def set_name(name): global_var.name = namedef get_name(): return global_var.name 然后在其他模块引用: test.py import config# 引用全局变量name = config.get_name()# 修改全局变量config.set_name('new_name')# 查看修改后的全局变量print(config.get_name()) 注意: 1. import配置文件时,不要from xxx import *, 而要import config.py 2. 在config.py文件中,用set_xxxValue()和get_xxxValue来提供外部访问接口,这个好处是,可以让全局变量在每次调用的时候都能……

网友NO.707407

python如何在非创建全局变量的地方使用全局变量

在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 即python引用变量的顺序: 当前作用域局部变量-外层作用域变量-当前模块中的全局变量-python内置变量。 然而当在一个函数内部为一个变量赋值时,并不是按照上面所说LEGB规则来首先找到变量,之后为该变量赋值。在Python中,在函数中为一个变量赋值时,有下面这样一条规则:“当在函数中给一个变量名赋值是(而不是在一个表达式中对其进行引用),Python总是创建或改变本地作用域的变量名,除非它已经在那个函数中被声明为全局变量. ” python中golbal全局变量和nonlocal局部变量 global关键字用来在函数或其他局部作用域中使用全局变量。 gcount = 0 #定义了一个全局……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757