2012-08-08 40 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是否正在運行代碼或者代碼是作爲模塊導入的。

相關問題