簡體   English   中英

在if __name__ =='__ main__':語句下編寫大量代碼是很常見的

[英]Is it common to write a lot of code under if __name__ == '__main__': statement

我目前的編碼風格就像

import xxx

def fun1()
def fun2()
...

if __name__ == '__main__': 

    task = sys.argv[1]
    if task =='task1':
        do task1
    elif task == 'task2':
        do task2
    ...

我的問題是代碼的一部分

if __name__ == '__main__': 

與上面定義的函數相比,這是非常巨大的,我被告知這不是一個好的編程風格。 這是因為我修改了內容並經常在每個任務中進行實驗,並且我希望將代碼的這些部分與不太可能被修改的函數分開。 我想在這里學到更多建議,謝謝!

就像BusyAnt所說的那樣,常見的做法是

import xxx

def fun1()
def fun2()
...



def main():
    task = sys.argv[1]
    if task =='task1':
        do task1
    elif task == 'task2':
        do task2
    ...

if __name__ == '__main__':
    main()

這樣做的好處是它不會在import運行,但是如果願意的話, main()仍然可以從另一個模塊或文件運行。

它不禁止寫了很多東西下if __name__ == '__main__' ,雖然它被認為是更好,更可讀的包了一切main()函數 這樣,當您在另一個模塊中import此模塊時,不會執行main()的代碼, 您仍然可以通過調用imported_script.main()來選擇運行它。

您的代碼將如下所示:

import xxx

def fun1()
def fun2()
...


def main():
    task = sys.argv[1]
    if task =='task1':
        do task1
    elif task == 'task2':
        do task2
    ...

if __name__ == '__main__':
    main()

我鼓勵你在有關它的許多問題中閱讀這個if語句的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM