好的,所以我正在处理的项目要求*使用一个真正的全局变量(或者五个),这里的其他问题与交叉模块变量有关(稍后可能会有所帮助)。
这是我的问题:我有一个程序将运行环境模拟,我需要在一些函数中设置一些全局变量来使用和修改。怎么会这样做呢?
*当我说要求时,我的意思是我没有找到更有效的方法来做到这一点。
答案 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'