• 售前

  • 售后

热门帖子
入门百科

Python跨文件全局变量的利用本领

[复制链接]
朲賤芿嗳2017 显示全部楼层 发表于 2022-1-8 07:05:54 |阅读模式 打印 上一主题 下一主题
只管某些书籍上总是说制止利用全局变量,但是在现实的需求不断变革中,往往界说一个全局变量是最可靠的方法,但是又必须要制止变量名覆盖。
Python 中global关键字可以界说一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量:
我们知道Python利用变量的时间是可以直接利用的,x=[] ,y=2,z="123",而不必要先界说(var x; var y=2;var z='222'),如许的话,在函数内部就无法利用外部的变量了,由于它总会以为你是在界说一个新变量而且赋值,不外global就可以办理这个问题。
global 的基础用法:
  1. x = 6
  2. def func():
  3.     global x #定义外部的x
  4.     x = 1
  5. func()
  6. print (x)
  7. #输出1
复制代码
这个时间,纵然你在另外一个py文件 再次利用global x也是无法访问到的,由于在这个py模块中并没有一个叫做x的变量,于是就会报错 未界说。
那么我们怎么办?
借鉴global 关键字的思绪,既然在一个文件里面可以生效的话,那么我们就专门为全局变量界说一个“全局变量管理模块”就好了
新建一个py文件,文件名是:gol.py,详细代码:
  1. # -*- coding: utf-8 -*-
  2. def _init():#初始化
  3.     global _global_dict
  4.     _global_dict = {}
  5. def set_value(key,value):
  6.     """ 定义一个全局变量 """
  7.     _global_dict[key] = value
  8. def get_value(key,defValue=None):
  9.   """ 获得一个全局变量,不存在则返回默认值 """
  10.     try:
  11.         return _global_dict[key]
  12.     except KeyError:
复制代码
信赖假如你看懂了就应该知道思绪了,利用global的单独文件全局性,从而可以界说在一个文件中的全局变量,然后这个单个文件的全局变量可以生存多个文件的共同全局变量
利用的时间,以Key对Value 的方法利用,我信赖大家都懂。
  1. # -*- coding:utf-8 -*-
  2. import gol
  3. gol._init()#先必须在主模块初始化(只在Main模块需要一次即可)
  4. #定义跨模块全局变量
  5. gol.set_value('uuid',uuid)
  6. gol.set_value('token',token)
复制代码
然后其他的任何文件只必要导入即可利用:
  1. # -*- coding: utf-8 -*-
  2. import gol
  3. #不需要再初始化了
  4. ROOT = gol.get_value('uuid')
  5. CODE = gol.get_value('token')
复制代码
就如许就可以实现跨文件的全局变量利用;
而且还有一个简单但是强盛的全局变量管理器,你可以自己添油加醋,实现一些好比全局变量禁止直接修改,禁止修改某些只可读的全局变量等等。
到此这篇关于Python跨文件全局变量的利用的文章就先容到这了,更多相关Python跨文件全局变量内容请搜索草根技术分享以前的文章或继承欣赏下面的相关文章盼望大家以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作