是否可以在其中使用带有pass语句的def main()用于python模块

时间:2016-06-27 04:52:28

标签: python

我有一个python脚本,我纯粹用作模块。它有一个类和一些其他函数,使用:

导入到另一个python脚本
from module import *

模块看起来像这样:

class myClass:

     def __init__(self, something):

     def someGetter(self):
         return whatever

     def someSetter(self):

def someSupportingFunction():
     return whatever

def someOtherSupportingFunction():
     return whatever


def main():
     pass

if __name__ == '__main__':
     main()

我使用的脚本同时使用了脚本中包含的类和其他函数。

这是否是实现不需要通过命令行使用的模块的合理方法?如果没有,那么实施它的最佳方式是什么?

根据我的阅读,使用*进行通配符导入是不受欢迎的。感谢。

2 个答案:

答案 0 :(得分:5)

如果您不需要主功能,请不要定义主功能,也不要调用它。没有要求有一个名为main的函数,如果你确定了一个,它没有特殊的状态,除非你自己调用它,否则不会被调用。

只需移除代码的最后五行(def mainif __name__...)。

答案 1 :(得分:1)

主要方法和全局变量名称是可选的。如果不存在,python解释器不会抱怨。

def main():
     pass

if __name__ == '__main__':
     main()

那么什么是__name__
__name__ python文件中的全局变量*.py定义了程序的入口点。如果它在那里并且当您执行“this file”作为主python程序时,那么if子句__name__ == '__main__'中的任何逻辑都将被执行,否则它将被忽略。

因此,这段代码是否存在并不重要,因为它只是一个类结构。