我喜欢在我的包底部使用以下代码在 python 中测试我的包:
if __name__ == "__main__":
sys.exit(main())
main()
我在上面定义的函数在哪里。现在我的问题是:
我需要在我的 main 中导入额外的包来测试我的模块,如果用户只是导入我的模块(即从另一个脚本),则不需要导入这些包。如果我的 main 明确运行,有没有办法只导入这些额外的包?当我的包刚被导入(即从另一个脚本)时,这些额外的包不会被导入。
为什么不将您的导入语句直接放在您的正文中main()
?那应该这样做。
def main():
import my_module # import ONLY if main is called
# code
在 Python 中,您可以在代码中的任何位置放置导入。
所以你可以有:
if __name__ == "__main__":
import <package> # place your imports here
sys.exit(main())
这个问题中详细讨论了“延迟导入”