当前位置:首页 > 编程教程 > Python技术文章 > 实例分析Python跨文件全局变量的实现方法

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

  • 发布时间:
  • 作者:码农之家
  • 点击:137

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

Python并行编程参考手册
  • 类型:Python编程大小:41.4 MB格式:PDF作者:吉安卡洛·扎克尼
立即下载

Tags:Python 全局变量 

实例分析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 关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用 global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错 未定义。

借鉴global 关键字的思路,既然在一个文件里面可以生效的话,那么我们就专门为全局变量定义一个“全局变量管理模块”就好了

全局变量管理模块 globalvar.py

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
def _init():
 global _global_dict
 _global_dict = {}
def set_value(name, value):
 _global_dict[name] = value
def get_value(name, defValue=None):
 try:
  return _global_dict[name]
 except KeyError:
  return defValue

 

设置全局变量 a.py

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import globalvar as gl
gl._init()
gl.set_value('name', 'cc')
gl.set_value('score', 90)

 

获取全局变量 b.py

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
import globalvar as gl
name = gl.get_value('name')
score = gl.get_value('score')
print("%s: %s" % (name, score))

 

主程序 main.py

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
import a
import b

 

然后运行主程序文件 python main.py,得出的结果是 cc: 90

相关推荐:

完全掌握 Python

Python实现字符串匹配算法实例代码

Python扩展内置类型的实现方法分析

以上就是实例分析Python跨文件全局变量的实现方法的详细内容,更多请关注码农之家其它相关文章!

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

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

python 全局变量的import机制介绍

先把有问题的代码晒一下: IServer.py from abc import ABCMeta, abstractmethodprint __name__class IServer: def __init__(self): pass @abstractmethod def DoWithA(self): pass @abstractmethod def DoWithB(self): pass IServer_A.py import IServerserverType ='1001'print __name__dir()from CreatFactory import GLOBAL_class_dicdir()class IServer_A(IServer.IServer): def __init__(self): pass def DoWithA(self): print 'Server_A do with interface A' def DoWithB(self): print 'Server_A do with interface B'global GLOBAL_class_dicprint 'the id of GLOBAL_class_dic in A is:',id(GLOBAL_class_dic)GLOBAL_class_dic[serverType] = IServer_Aprint 'GLOBAL_class_dic in a is:', GLOBAL_class_dic IServer_B.py import IServerserverType ='1002'from CreatFactory import GLOBAL_class_dicprint __name__class IServer_B(IServer.IServer): def __init__(self): pass def DoWithA(self): print 'Server_B do with interface A' def DoWithB(self): print 'Server_B do with interface B'print 'the id of GLOBAL_class_dic in B is:',id(GLO……

网友NO.809306

Python global全局变量函数详解

global语句的作用 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。 在python的函数使用时,经常会碰到参数定义的问题。如果不声明全局变量,会报错 count = 1def cc(): count = count+1cc()Traceback (most recent call last):File "ipython-input-17-f6b58c567c1a", line 1, in module cc()File "ipython-input-16-aab94f1185b9", line 2, in cc count = count+1UnboundLocalError: local variable 'count' referenced before assignment 意思是说count为局部变量,在使用它之前没有被赋值。在函数内无法直接使用全局变量。 num = 1id(num)Out[31]: 1886744032def cc(): num = 2 print(id(num)) print(num)cc()18867440642 可以看出函数里面的num是局部变量,有什么办法能……

网友NO.295803

Python全局变量与局部变量区别及用法分析

本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下: 对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。 定义: 全局变量: 在模块内、在所有函数的外面、在class外面 局部变量: 在函数内、在class的方法内 下面来看看例子 一、函数内部调用全局变量 a="hello" #全局变量adef test(): global a#调用全局变量a b =a #test方法里之后再调用a时,都是全局的a print(b,a)test() 在test函数里调用全局变量a,看看运行后的结果 ('hello', 'hello') 运行后都是全局变量的值hello 二、函数内部使用与全局变量同名的局部变量 a="hello" #全局变量adef test(): a="hell0 local" #定义了一个局部变量a b =a #test方法里之后再调用a时,都是局部的a print(b+",",a)test() 这里在函数test里面再定义了一个a,这个a就为局……

<
1
>

电子书 编程教程 PC软件下载 安卓软件下载

Copyright 2018-2020 xz577.com 码农之家

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

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

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