2011-05-27 34 views

回答

4

這不是一個條件表達式:它是一個語句。 Py_eval_input表示將字符串視爲單個表達式。您可能希望Py_single_input將該字符串視爲語句。

這與eval(這是您要求的)和exec之間的Python代碼區別是相同的。

我假設你當然希望執行的語句稍微複雜一些,否則使用evalexec的點並不多。對於exec,您需要確保它有副作用,以便您可以告訴結果,例如通過將某個值綁定到名稱。

+0

我是新來的蟒蛇。我試過「1,如果真的其他0」,它的工作原理。謝謝。 – David 2011-05-27 09:22:24

+0

我想到了一個暗示,但是錯誤地認爲,除非你有一些Python本身的經驗,否則你不會玩C-api。順便說一句,如果你所做的不僅僅是運行一個簡單的表達式或語句,而是考慮使用Cython而不是直接使用C-api。 – Duncan 2011-05-27 09:38:42

0

確實如此,但是你沒有做任何會產生輸出或返回值的任何事情。

考慮下面的代碼:

#!/usr/bin/python 

def foo(): 
    if True: 1 
    else: 0 

a = foo() 

print(a) 

一個不會得到值爲0或1 - 這將是 '無'。

+0

如果沒有輸出,這將是問題,但不是此特定例外的來源。 – 2011-05-27 09:21:22

相關問題