python中的global关键字是可以定义一个全局变量的,但这个全局变量只能应用于一个py文件中,当在另一个py文件便无法通过global y 访问到变量。
global 的基础用法:
x = 6
def func():
global x #定义外部的x
x = 1
func()
print (x)
#输出1
但这种用法,不能在其他的py文件中使用,但我们可以根据这个global思想定义一个文件,里面专门是定义全局变量以及调用全局变量。只需要在想要操作的文件的main中初始化一次全局变量,便可实现其余py文件对该全局变量的共享。
新建glo.py文件(全局变量文件)
def _init(): #初始化
global _global_dict
_global_dict={}
def set_value(key,value):
#定义一个全局变量
_global_dict[key]=value
def get_value(key, defValue=None):
#获得全局变量,不存在则返回默认值
try:
return _global_dict[key]
except KeyError:
return defValue
另新建一个叫glo1.py的文件,该文件是为了验证全局变量是否实现共享
import glo
import glo2
if __name__ =='__main__':
glo._init()
glo.set_value('cho','game') #给全局变量cho,赋值game
glo2.Name.pair('cho') #调用glo2文件的Name类的pair函数,判断全局变量cho是否共享成功
新建一个glo2.py文件,该文件调用全局变量。
import glo
class Name():
def pair(key):
if(glo.get_value(key)=='game'):
print("可以实现全局变量")
运行glo1.py文件,输出:
证明该方法已经可以实现全局变量在多个py文件下的共享使用。