我的情况如下:
main.py
moduleA.py
moduleB.py
moduleA contains main() function
moduleB contains main() function
我主要是:
import moduleA, moduleB
def main():
moduleA.main()
moduleB.main()
if __name__ == '__main__':
main()
我想知道我是否可以链接模块执行:
import moduleA, moduleB
def main():
moduleA().moduleB()
if __name__ == '__main__':
main()
它是可以实现的吗?我知道上面的代码将无法工作,因为modul是不可调用的。你知道吗
如果您真的愿意,您可以使模块可调用。你知道吗
Christoph Böddeker has outlined a solution将
__call__
魔术方法添加到types.ModuleType
的子类,并将此类分配给模块。这个答案是基于替换中实际模块的Alex Martelli's approach系统模块通过调用所讨论方法的可调用类实例。后一种解决方案隐藏尚未添加到类中的模块的所有内容,而前一种解决方案保持模块的行为和其中包含的项的公开。你知道吗根据您的需求,Christoph的解决方案如下所示:
模数a.py以及模块b.py
主.py
不过,我建议不要这样做。你知道吗
moduleA.main()
要复杂得多相关问题 更多 >
编程相关推荐