2012-08-08 39 views
1

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

  • 在这样的脚本内定义类是不好的做法吗?我是否应该始终将它们放在单独的文件中?
  • 但是,有没有方法来导入类和它的方法,而不执行它定义的脚本?

啊,我正在运行Python 2.7。

+0

更好地提供你的代码,而不是让我们猜它是怎么样的 – 2012-08-08 08:08:00

+1

可能的重复[什么是 do?](http://stackoverflow.com/questions/419163/what -does-if-name-main-do) – jamylak 2012-08-08 08:08:47

+0

@Maulwurfn,这里的类或者脚本本身的代码是如何相关的?还是不清楚我在这里做错了什么? – LarsVegas 2012-08-08 08:13:21

回答

5

要做你想做的事情的方法是使用if __name__ == "__main__"块。请参阅this question

在脚本中定义类是完全正确的,但不能在不执行脚本的情况下导入类,因为它只是通过执行定义该类的脚本。类定义不是Python中的“编译时声明”;它们的执行顺序与模块中的其他所有内容一样。您应该使用if __name__=="__main__"块来保护将文件作为模块导入时不希望运行的代码。

+0

谢谢,我明白了。 – LarsVegas 2012-08-08 08:36:52

0

您应该使用if __name__="__main__:成语来检查Python是否正在运行代码或者代码是作为模块导入的。

相关问题