我正在编写一个Python(3.5)模块,其中我想利用一个开源项目中现有的Python模块。我要导入的模块包含:
if __name__ == '__main__':
指令但不包含def main(args)
函数。你知道吗
因为没有实际的main
函数,我无法通过import module
导入它并将其用作module.main()
。虽然我确实找到了通过命令os.system()
和subprocess.Popen()
分别作为脚本执行的选项,但实际上我正在寻找一种方法,使此调用成为代码的一个组成部分。你知道吗
我知道我可以自己在原始代码中添加def main()
部分,但是因为它来自一个开源项目,所以我正在寻找保持它不变的方法,这样如果它被更新,我就不需要自己维护它了。你知道吗
我也经历过其他非常类似的问题,比如this和this,它们不能解决我的问题。This answer给我一种感觉,我正在努力做的事情并不琐碎。你知道吗
有什么办法吗?你知道吗
当您第一次
import
一个模块时(区别于导入函数),该模块中的所有代码都会执行。这意味着函数被定义,全局变量被定义,等等。我们编写if __name__ == "__main__":
块的原因是当导入模块时,代码不会执行(它只执行if name == "main")。如果您只是删除if __name__ == "__main__":
行并修复缩进,那么在导入模块时将执行该代码。以这个模块hello.py
为例:如果我们导入:
下面的代码将执行与本例相同的操作,其中第一个模块将再次运行你好,派瑞地址:
要执行的模块:
我建议你不要这样做,但你真的应该编辑,包括一个主要功能。你知道吗
相关问题 更多 >
编程相关推荐