1

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

  • 在这样的脚本中定义一个类是不好的做法吗?我应该始终将它们保存在单独的文件中吗?
  • 但是,有没有一种方法可以只导入类及其方法而不执行它定义的脚本?

啊,我正在运行 Python 2.7。

4

2 回答 2

6

做你想做的事的方法是使用一个if __name__ == "__main__"块。看到这个问题

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

于 2012-08-08T08:08:04.510 回答
0

您应该if __name__="__main__:检查 Python 是否正在运行代码或将代码作为模块导入。

于 2012-08-08T08:16:30.220 回答