2012-08-06 145 views
-2

我真的很抱歉,我知道這些問題看起來很簡單。但是我對python的語法不太熟悉,所以請幫我減去該字段中的兩個值

有兩列。列A和B.我想減少在列A和B的值時,在記者

保存按鈕,這是我的代碼

但是,當我按下保存按鈕會發生什麼。值爲0

def _tot_get_deposit(self, cr, uid, ids, name, arg, context=None): 
    res = {} 
    for deposit in self.browse(cr, uid, ids, context=context): 
     sum = 0.0 
     sum = A - B 
     return sum 
    return res 

我知道這是個小問題,但我對Python語法並不熟悉。請真的幫助

+2

您對Python代碼的注意不正確。 – 2012-08-06 07:45:42

+0

什麼是'A'和'B'?你循環「存款」,但不要對存款價值做任何事情。你的代碼示例會拋出一個錯誤:NameError:name'A'未定義。 – jozzas 2012-08-06 07:52:48

+1

'sum'是名稱的錯誤選擇,因爲它恰好是內置函數的名稱。 'A'和'B'是什麼?你回來的第一個'A - B'或一個空的字典...我沒有得到你想要做的... – 2012-08-06 07:53:53

回答

1

我想你需要閱讀更多關於功能如何工作。

一旦你return什麼,該功能將結束。

你不能遍歷任何東西,並返回一個函數內的多個值。

嘗試在函數中本地保存它們,然後在最後返回一個包含所有結果的list/dict/tuple。

比如......我覺得你的代碼可以寫成:

def _tot_get_deposit(self, cr, uid, ids, name, arg, context=None): 
    res = {} 
    results = [] 
    for deposit in self.browse(cr, uid, ids, context=context): 
     sum = 0.0 
     sum = A - B 
     results.append(sum) 
    return (res,results) 

這將創建「總和」,然後將其添加到您的字典「水庫」,然後返回一個列表。一起作爲一個元組。

+0

有很多更有效的方法來做到這一點,但我認爲這只是你的代碼的一部分,我想提供一個足夠簡單的答案來理解你對python的有限理解。 – 2012-08-06 07:53:38

+1

很好的解釋。小問候,'res'永遠不會使用,所以爲什麼要包含/返回它? – Lenna 2012-08-06 07:57:39

+1

我不知道,但我確定OP有一個原因... – 2012-08-06 07:58:15