3

如果是,你能提出比下面更好的方法吗?请详细说明/证明。

class X:
    ...

if __name__ == '__main__':
    # TODO: Should we bother doing this?
    errorMessage = 'This class is not meant to have a main method. Do not execute directly.'
    print(errorMessage)
    raise Error(errorMessage)
4

4 回答 4

3

一种常见的模式是将Python 模块的单元测试放在模块主体中。例如:

if __name__ == "__main__":
    run_unit_tests()

但是,如果您不这样做,我什至不会费心添加任何模块主体代码。如果作为脚本执行,没有正文代码的 Python 模块将什么也不做。

于 2010-12-05T23:54:07.210 回答
3

我不会这样做。

原因如下:python -i scriptname.py可用于在脚本中加载并拖放到脚本运行后的交互式控制台。所以你得到的是所有定义的函数,然后你可以按照你认为合适的方式操作/测试。

你的方式,你会得到一个错误这样做。

于 2010-12-05T23:56:10.533 回答
2

不,不值得。毕竟,如果没有顶级函数调用,代码将不会做任何事情,

于 2010-12-05T23:53:38.003 回答
1

1)不。如果某些东西“不能被调用”,它无论如何都会引发异常。

2)if __name__ == '__main__'构造是指模块,而不是类。“调用”一个类会创建该类的一个实例。您也不会“调用”模块;您可以导入或运行它们。

请更加小心您的术语。当您正确理解这些概念时,这些问题的答案就会变得显而易见。

于 2010-12-05T23:54:49.710 回答