python中的真正全局变量

时间:2014-11-07 01:11:35

标签: python global-variables simulation

好的,所以我正在处理的项目要求*使用一个真正的全局变量(或者五个),这里的其他问题与交叉模块变量有关(稍后可能会有所帮助)。

这是我的问题:我有一个程序将运行环境模拟,我需要在一些函数中设置一些全局变量来使用和修改。怎么会这样做呢?

*当我说要求时,我的意思是我没有找到更有效的方法来做到这一点。

2 个答案:

答案 0 :(得分:2)

是的,有一种方法可以在遍布多个模块的函数内使用和修改全局变量。将变量放入模块并将该模块导入主程序:

# globals.py
klaatu = "Once in Persia reigned a king ..."

# main_program.py
import globals

def modify_klaatu():
    print globals.klaatu
    globals.klaatu = "It was the best of times, it was the worst of times."

答案 1 :(得分:0)

@rob的方法有些狡猾但完全动态:

import types
import sys

sys.modules['myglobals'] = types.ModuleType('myglobals')
sys.modules['myglobals'].__dict__.update({'first': 'thing', 'second': 'thing'})

import myglobals
print(myglobals.first) # prints 'thing'

或者如果您只有一个全局对象,那么这种极端狡猾的方法又如何:

import sys
sys.modules['myglobal'] = 'thing'

import myglobal
print(myglobal) # prints 'thing'