如何从另一个具有主要功能的 python 模块调用单个方法

How to call an individual method from another python module which has got a main function in it

我有一个 python 模块,例如:myexample.py 包含以下内容。

import os, sys
class nw_clss():
    def new_func():
        /*some statements*/

def main():

main(some arguments)

现在我正在编写一个单元测试框架,我需要在 myexample.py 中调用一些单独的函数。 但是,由于 myexample.py 中有一个 main 方法,每当我尝试调用单个函数时,框架实际上是在调用 main 方法并执行 myexample.py

中可用的所有方法

是否可以重写它并只调用各个方法。

谢谢, 阿琼

这是

的目的
if __name__ == '__main__':
    main()

您可能经常看到。

当你直接 运行 一个模块时,它的 __name__ 变量将是 '__main__',但是如果被另一个模块导入它会有所不同,所以像这样的块中的代码将仅在该模块直接 运行 时执行。

编辑:澄清一下,你想要的是

import os, sys
class nw_clss():
    def new_func():
        /*some statements*/

def main():
    pass

if __name__ == '__main_':
    main(some arguments)

编辑 2:来自评论

在你的单元测试模块中,如果你只想测试模块的一部分(例如 class),你可以只导入:

from myexample import nw_clss

这不会 运行 整个模块。用良好的实践编写代码不太好,但如果出于某种原因编写原始代码的人不让你那么我想这就是你必须做的。