2

我喜欢在我的包底部使用以下代码在 python 中测试我的包:

if __name__ == "__main__":
    sys.exit(main())

main()我在上面定义的函数在哪里。现在我的问题是:

我需要在我的 main 中导入额外的包来测试我的模块,如果用户只是导入我的模块(即从另一个脚本),则不需要导入这些包。如果我的 main 明确运行,有没有办法只导入这些额外的包?当我的包刚被导入(即从另一个脚本)时,这些额外的包不会被导入。

4

2 回答 2

4

为什么不将您的导入语句直接放在您的正文中main()?那应该这样做。

def main():
   import my_module # import ONLY if main is called
   # code
于 2012-10-26T07:35:59.817 回答
3

在 Python 中,您可以在代码中的任何位置放置导入。

所以你可以有:

if __name__ == "__main__":
    import <package> # place your imports here
    sys.exit(main())

这个问题中详细讨论了“延迟导入”

于 2012-10-26T07:39:22.073 回答