2017-10-21 36 views
1

我曾嘗試在網上尋找答案,但無法找到它。我對python相當陌生,想知道你是否可以在程序中使用多個主函數。例如:Python __name __()主要功能

ask_user = int(input('enter your choice (1 or 2): ')) 

if ask_user == 1: 
    def print_hello(): 
     print('hello world') 
    def main(): 
     print_hello() 

    if __name__ == '__main__': main() 

elif ask_user == 2: 
    def print_hi(): 
     print('hi') 
    def main(): 
     print_hi() 

    if __name__ == '__main__': main() 

這是一個很好的編程習慣嗎?

+3

雖然你*可以做到這一點,它真的很奇怪,誤導和毫無意義。 – user2357112

+1

這個問題實際上是一個特殊的情況,詢問您是否可以在同一個程序的不同塊中定義多個具有相同名稱的函數,該函數[之前已經問過](https://stackoverflow.com/q/45109185/831878)。 –

+0

謝謝。調用函數的最佳方法是什麼?如果我想用ArgumentParser()傳遞一個參數。什麼是最好的方法? –

回答

2

這不會被認爲是很好的編程習慣,沒有。像index.html一樣,main()的要點是有一個到程序的主要入口點。即使一種特定的語言允許這樣的事情,任何閱讀代碼並試圖找出從哪裏開始的人都會感到困惑。對於顯示選項,您可以使用具有有意義名稱的單獨函數,如print_hello_worldprint_hi,它們都可以通過main()調用。

+0

如何在'main()'函數下添加'def print_hello()'和'def print_hi()'函數? –

+0

我寫了一個腳本來演示如何做到這一點:https://repl.it/MzdE –

+0

請注意,如果您在另一個函數中定義了一個函數,那麼您只能從它所在的函數中使用它。 Python開發人員大多使用嵌套函數來處理與程序其餘部分無關的特定函數。你必須非常有意識地告訴你如何做到這一點。 –