如何在Python中调用.py脚本并使父级变量对子脚本可用?
在Python中让父脚本变量对子脚本可用的几种方法
针对父脚本变量无法被子脚本访问的问题,以下是几种可行的解决方案:
方法1:从父模块直接导入变量
修改子脚本Child.py,通过导入父模块来访问其定义的变量:
# Child.py import Parent print(Parent.oParent.test)
同时建议在父脚本Parent.py中添加主程序入口判断,避免循环导入问题:
# Parent.py class cParent: test = "test" oParent = cParent() if __name__ == "__main__": import Child
运行Parent.py时,Child.py就能通过Parent模块访问到oParent实例。
方法2:将变量作为参数传递给子脚本的函数
这种方式更符合模块化设计原则,降低脚本间的耦合度:
先把Child.py的逻辑封装成函数:
# Child.py def print_parent_test(parent_instance): print(parent_instance.test)
然后在父脚本中调用该函数并传入变量:
# Parent.py class cParent: test = "test" oParent = cParent() import Child Child.print_parent_test(oParent)
方法3:通过__main__模块访问(不推荐)
如果子脚本是在父脚本作为主程序运行时被导入的,可以通过__main__模块获取父脚本的全局变量:
# Child.py import __main__ print(__main__.oParent.test)
Parent.py保持原代码即可,但这种方法依赖主模块的上下文,灵活性差,仅适合简单测试场景。
内容的提问来源于stack exchange,提问作者NickC
相关产品推荐
相关产品推荐

