+ -
当前位置:首页 → 问答吧 → 模块相互调用问题(python) 大家别拍砖头

模块相互调用问题(python) 大家别拍砖头

时间:2011-01-19

来源:互联网

#a.py
import b
g_str = "Hello"

................................
#b.py


我的问题是 a调用b ,但是b中又想调用 a中的 g_str 请问 如何处理

作者: chenbin200818   发布时间: 2011-01-19

一般正常调用就可以。但是:
一、尽量避免模块间互相依赖,考虑传递参数,或者使用duck object来解决依赖。
二、尽量把依赖放在函数里,而不是模块的最上层。把依赖放在函数里可以使依赖调用延迟到模块结束后,而不是在加载模块的时候就依赖,防止对一个未完全初始化的模块操作。

作者: iambic   发布时间: 2011-01-19

a是一个主模块, 在a中会经常调用b模块中的函数

那么我想在b中调用a中生成的数据,可以直接import a吗 ,好像这不可以吗
有没有更好的办法

我也想过 用函数的形式来调用, 但如何来调呢

作者: chenbin200818   发布时间: 2011-01-19

模块中最上层应该只有常量定义和函数定义。主模块的主函数可能会打破这一点,所以你新建个模块,比如叫x,把主函数从a.py移动到x.py里,这样主模块不会被动依赖了。

作者: iambic   发布时间: 2011-01-20