2015-10-03 24 views
0

有誰知道是否有辦法做到這一點?你能像perl一樣在python頂部調用主函數嗎?

例如,這個Perl代碼的作品,但蟒蛇不?

#!/usr/bin/perl5.18 
main(); 

sub main { 
    print 'hello\n'; 
    return; 
} 
#!/usr/bin/env python3.4 
main() 

def main(): 
    print('hello') 
    return 

感謝

+3

main是未定義的,直到你點擊def行,在python中你必須在調用它之前定義函數 –

+0

如果你從其他模塊/文件導入它,是的,你可以:)這是一個笑話,順便說一句。 python從頂部到底部讀取代碼。在任何情況下,如果解釋器發現未定義的變量,函數等的使用(評估,執行),它將停止使用錯誤代碼。有一個查找這個線程:http://stackoverflow.com/questions/2985047/order-of-execution-and-style-of-coding-in-python – marmeladze

回答

0

你需要你打電話之前寫的main定義:

def main(): 
    print('hello') 
    return 

if __name__ == "__main__": # Avoid running main function when this file is imported instead of run directly. 
    main() 
+0

Re「在調用之前,你需要編寫main的定義它「,不,呼叫可以在定義之前。 – ikegami

+0

@ikegami你可以編寫在定義之前調用它的代碼,但不能運行這些代碼,並且在函數分配給它的代碼之前真的調用該函數。 – LouYu

0

能不能請你:

def main(): 
    print('hello') 

,然後調用它的main()

+1

OP是問在你有它定義之前如何調用它這是不可能的 –

+0

@ikegami,你可以,你只需要確保函數在你調用函數之前已經定義好了,一旦它被定義爲全局變量就可以從任何地方訪問 –

0

在聲明函數前,不能調用函數,除非調用在另一個函數中。解決辦法:

def top(): 
    main() 

... 

def main(): 
    print('hello') 
    return 

top() 

不確定爲什麼要這樣做。用任何一種語言。這在Perl中肯定是很容易出錯的。

0

因此,您可以在早些時候定義它之後才能使用該函數。

相關問題