python-跨文件的全局变量,该如何是好,,一、设置一个类,存放
python-跨文件的全局变量,该如何是好,,一、设置一个类,存放
一、设置一个类,存放全局数据
class GlobalVar: def __init__(self): self.DB_CONFIG = {} self.table_name = ‘‘ # 表名 ...
调用时,从主模块中,创建实例:
def main(self): gv = GlobalVar() gv.table_name = ‘user‘ # 当其它类中,需要使用某个全局变量时,通过函数的参数,传递gv过去: decl_func.get_auto_increment(gv,field)
在decl_func中这样定义:
def get_auto_increment(gv,field): table = gv.table_name
这种方式的缺点是,所有其它文件中,使用全局变量,必须调用主模块中的创建的唯一实例。如果某模块不是直接被主模块调用的,而又需要使用全局变量,就得一层层调用,或者写额外的接口。增加麻烦。
二、get/set方式:
首先创建个全局模块:globalVar.py
#!/usr/bin/env 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
在需要使用全局变量的文件中引入:
import common.globalVar as gl
但看上去写代码麻烦了一点,一点也不优雅,写一半,看不下去,放弃了。
三、简洁最美:
首先创建个全局模块:global_var.py
#调用方法: #import global_var as gl #gl.table_name = ‘hhh‘DB_CONFIG = {}table_name = ‘‘ # 表名
在需要使用全局变量的文件中引入:
import common.global_var as gl
然后直接操作gl就行
from common import prase,check,configimport common.global_var as gldef load(): """载入各种标签的值,并且检查错误""" gl.DB_CONFIG = get_connect_dict(gl.file_name, gl.data) gl.table_name = prase.prase_table(gl.data) if gl.table_name == ‘‘: gl.msg = gl.file_name +‘:没有table标签。\n‘ return False
python-跨文件的全局变量,该如何是好
相关内容
- Elasticsearch之pythonAPI简单使用,,elasticsea
- 二叉堆 及 大根堆的python实现,,Python二叉堆(
- python中使用pycharm2018工具安装Autopep8,,PEP 8,Styl
- appnium定位+操作方式(python),,1.定位:A.利用A
- Python3 条件控制(九),,Python条件语句
- python文件操作,,codecs 模块:
- python读取配置文件-configparser,,首先在包目录下创建文
- python库之_thread,, 官方参考文档:h
- python对kafka的基本操作,,-- coding:
- python11.12,,print("---
评论关闭