首先定义一个全局变量管理模块
# common/gloabalvar.py
# -*- coding:utf-8 -*-
"""
global var module
"""
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
二、初始化及定义(设置)全局变量
# main.py
import app.common.globalvar as globalvar
if __name__ == "__main__":
# init global var
globalvar._init()
globalvar.set_value('itsm_deadline', SettingConfig.ITSM_DAILY_DEADLINE)
globalvar.set_value('email_subject', SettingConfig.EMAIL_SUBJECT)
globalvar.set_value('email_recipients', SettingConfig.EMAIL_RECIPIENTS)
globalvar.set_value('auto_submit_status', SettingConfig.AUTO_SUBMIT_STATUS)
1
2
3
4
5
6
7
8
9
10
11
三、获取全局变量
# business.py
import app.common.globalvar as globalvar
status = globalvar.get_value('auto_submit_status')
附加:API管理全局变量,都是基于上述三点完成
对于flask-restful的web应用则可以通过API接口查看全局变量的值以及通过API接口设置和管理它们
# app/api/v1/test/test.py
from flask_restplus import Resource
import app.common.globalvar as globalvar
from .marshal_model import admin_api_ns as api
@api.route('/')
class GlobalVar(Resource):
"""全局变量管理API"""
@api.doc('Get all the global var')
@api.response(HTTP_GET_SUCCESS, 'query success')
def get(self):
"""查询所有的全局变量"""
glist = globalvar._global_dict
return glist, HTTP_GET_SUCCESS
@api.route('/auto')
class AutoSubmit(Resource):
"""查看及修改自动状态的API"""
@api.doc('check auto submit status')
@api.marshal_with(set_autosubmit)
@api.response(HTTP_GET_SUCCESS, 'query success')
def get(self):
"""测试查看自动状态开关状态"""
status = globalvar.get_value('auto_submit_status')
# status = query_autojob_status()
return {'status': status}, HTTP_GET_SUCCESS
@login_required
@admin_required
@api.doc('set auto submit the planlist everyday')
@api.expect(set_autosubmit)
def post(self):
"""设置每天定时自动开关"""
data = request.json
status = data.get('status')
globalvar.set_value('auto_submit_status', status)
# resp, returncode = update_autojob_status(status)
return {'message': 'success'}, HTTP_POST_SUCCESS
您好,感谢您的提问。Python变量初始化后,每次取最新的值是指,当我们使用变量时,它会取得最新的值。这意味着,在每次使用变量之前,我们都需要确保它的值是最新的。这是因为,在程序执行过程中,变量的值可能会发生变化,因此,我们需要确保每次使用变量时,它的值都是最新的。
Python变量初始化后,每次取最新的值是一个非常有用的特性,它可以帮助我们更好地管理变量,并确保程序正常运行。因此,我们应该充分利用这一特性,以提高程序的可靠性和可维护性。
祝您学习进步!
Python采用基于值的内存管理模式。在Python中一切皆对象,变量中存放的是对象的引用
python可以不用声明变量类型而直接对变量进行赋值。对Python语言来讲,对象的类型和内存都是在运行时确定的。这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型归结为对变量内存地址的分配是在运行时自动判断变量类型并对变量进行赋值)。