2013-05-20 171 views
0

代碼命令行參數PYTHON

import sys 

def main() 
    print(sys.argv) 

版本 - 3.3

文件名Pytest.py

運行語法pytest.py AAA BBB CCC

的文件,但它沒」不打印任何東西,也不會給出任何錯誤

回答

7

你永遠不會打電話main()

Python有一個自動運行無特殊main功能,所以不是,你可以把你想要運行文件時在命令行叫成一個特殊的if塊代碼:

import sys 

def main(): 
    print(sys.argv) 

if __name__ == '__main__': 
    main() 
+0

你(和OP)忘了':''爲主要()' – Elazar

+0

@Elazar:謝謝,固定。 – Blender

+0

'__name__'約定是一個重要的習慣用法,但對於簡單的測試腳本,只是不要將代碼放入函數中。 'import sys;打印(sys.argv中)' – tripleee

1

要詳細說明@ Blender的答案:Python函數不像C那樣編譯。函數是語句 - 它們在控件遇到它們時被執行,並且從文件的第一行開始。

下面的代碼是完全合法:

# get b somehow 
if b: 
    def foo(): return 1 
else: 
    def foo(): return 2 

print(foo())