导入类而不执行.py它在?

时间:2012-08-08 08:06:33

标签: python

我在名为Prof的脚本中定义了一个名为AddPntCode90_27.py的类。它打开一些文件,做一些数学运算,创建输出文件等等。现在我想将该类重新用于另一个程序。但由于AddPntCode90_27.py不是模块,它总是执行脚本而不是仅导入类。 我做了from AddPntCode90_27 import *以及from AddPntCode90_27 import Prof。 我熟悉this article。所以我的问题是:

  • 在这样的脚本中定义一个类是不好的做法吗?我应该一直把它们放在一个单独的文件中吗?
  • 然而,
  • 是否有一种方法只导入类及其方法而不执行它定义的脚本?

啊,我正在运行Python 2.7。

2 个答案:

答案 0 :(得分:5)

执行所需操作的方法是使用if __name__ == "__main__"块。请参阅this question

在脚本中定义类是完全正确的,但是如果不执行脚本就无法导入类,因为它只能通过执行定义类的脚本来实现。类定义不是"编译时声明"在Python中;它们就像模块中的其他所有内容一样按顺序执行。您应该使用if __name__=="__main__"块来保护在将文件作为模块导入时不想运行的代码。

答案 1 :(得分:0)

您应该使用if __name__="__main__:成语来检查Python是运行代码还是将代码作为模块导入。