手机版
你好,游客 登录 注册
背景:
阅读新闻

详述 Python 全局变量

[日期:2019-08-27] 来源:Linux社区  作者:JasonMingHao [字体: ]

Python没有真正的全局变量,在Java和C++中,全局变量则是程序级别的,站在它们的角度,那么python就是没有全局变量,而在python的角度,是有全局变量,Python提供global关键字,可以修改全局变量,在Python中的全局变量只是针对当前Python文件/模块所定义的,python文件就是一个模块,独立的命名空间,模块内定义的变量就只属于该命名空间,so,Python没有真正的全局变量,全局变量也只是文件级别。

所以Python的全局变量是相对而言的

例子:
test.py

a = 1

t1.py

import sys
import test # 导入test模块

a = 1 # 声明一个变量

def func1():
    global a # 引用当前命名空间的全局变量
    a += 1

def func2():
    test.a += 1  # 引用test模块命名空间的变量

def func3():
    # print(sys.modules) # 记录当前文件导入的所有模块
    module = sys.modules['test'] # 二次引用已导入的test模块
    module.a += 1      # 引用test模块命名空间的变量

func1()
func2()
func3()

print(a)        # 结果:2
print(test.a)  # 结果:3

更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-08/160396.htm

linux
相关资讯       Python全局变量 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款