2016-09-21 51 views
0

我在使用Python3.3 CLI與-c開關運行命令時遇到了問題。使用python中的本地Python模塊-c'...'

如果我在shell中嘗試python3 -c "print(5 + 9)",則按預期輸出14

不過,我在當前工作目錄中的文件名爲gcd.py看起來像這樣:

def gcd(m, n): 
    return m if n == 0 else gcd(n, m % n) 

如果我跑python3 -m gcd -c "print(gcd(48, 18))"殼只是創建了一個新的命令提示符沒有任何輸出。

如果我的文件更改爲:

print('test') 

def gcd(m, n): 
    return m if n == 0 else gcd(n, m % n) 

那麼shell將輸出test,因此該文件被加載。有人知道我在做什麼錯嗎?謝謝。

+0

關於這種模式沒有任何特定於CLI的指令 - 例如,它經常用於將Python代碼嵌入到bash腳本中,而不會期望這些腳本以交互方式使用。 –

回答

4

您不能一起使用-m-c;任一個或另一個控制執行。指定它們都會使Python忽略它們。

-c,而不是使用一個import聲明:

python3 -c "from gcd import gcd; print(gcd(48, 18))" 

注意-m對待模塊作爲一個腳本,它不是一個「導入這個模塊第一個」開關-c