Python不會強迫你使用OOP,如Java或C#,所以如果沒有真正的好處,你不需要將東西放入類中。
特別是創建一個類實例只是爲了分組東西不是最好的方式去恕我直言。您可以將這些東西提取到模塊中。這不需要任何實例,只需要導入。這樣它也在一個分離的文件和命名空間中。
例子:
main.py
:
if __name__ == "__main__":
import sys
args = sys.argv[1:]
if len(args) != 2:
print("This script requires exactly two command-line arguments!")
exit(1)
import my_module
exit_code = my_module.run(args) or 0
exit(exit_code)
else:
raise ImportError("Run this file directly, don't import it!")
my_module.py
:
# initialization code to be run at import time goes here
def run(args):
# do whatever you need to do
print("Hello world!")
print("You said <", args[0], "> and <", args[1], ">."
# you may return an integer (1-255) as exit code if an error occurred,
# else the default exit code is 0 (successful; no error)
然而,不採取這種方法,因爲終極的真理!這是我個人的(不那麼)卑微的意見,但總有一些情況下一種方法更適合,另一些方法更適合其他方面。
此外這主要是一個設計問題,並沒有真正影響到您的程序的穩定性或功能。它可能只會提高可讀性,但特別是對於小腳本來說,這不是一個好方法,因爲它增加了許多沒有任何實際操作的代碼。如果你有一個包含多個模塊的大型項目,我會說這很有用。
對於相當小的腳本(單個文件或只有很少的模塊),我建議您只需在頂部定義所需的所有類和函數,然後使用標準if __name__ == "__main__"
作爲入口點。
我建議在https://programmers.stackexchange.com/上提問,但總的來說,我不知道該技術的任何特定問題。 – cxw
Python不會強迫你使用OOP,如Java或C#,所以如果沒有真正的好處,你不需要將東西放入類中。尤其是創建一個類實例來組合東西不是最好的方式去恕我直言。您可以將這些東西提取到模塊中,而不需要任何實例,只需要導入即可。這樣它也在一個分離的文件和命名空間中。 –
另外,'if __name__ ...'行的縮進是錯誤的,它必須位於外層。可能只是一個錯字? –