如何在自定义模块中访问并修改主模块的全局变量READ_ONLY_ON_STATES
主模块全局字典在自定义模块中修改的解决方案
正确导入并修改字典
- 若主模块名为
main_module.py,在自定义模块中直接导入目标字典变量,由于字典是可变对象,直接修改其内容会同步到主模块:from main_module import READ_ONLY_ON_STATES # 添加新键值对 READ_ONLY_ON_STATES["on_approve"] = [("readonly", True)] - 也可通过导入整个模块的方式访问并修改:
import main_module main_module.READ_ONLY_ON_STATES["on_reject"] = [("readonly", False)]
规避常见错误
- 禁止直接重新赋值变量,比如
READ_ONLY_ON_STATES = {},这会让自定义模块中的变量指向新字典,而非原模块的全局字典,导致修改无效。 - 尽量避免
from main_module import *的导入方式,容易引发命名冲突,且不利于追踪变量来源。
验证修改效果
在主模块中导入自定义模块后,打印字典即可确认修改是否生效:
# main_module.py READ_ONLY_ON_STATES = {"on_validation":[("readonly", True)]} import custom_module print(READ_ONLY_ON_STATES) # 输出将包含新添加的键值对
内容的提问来源于stack exchange,提问作者Sidharth Panda
相关产品推荐
相关产品推荐

