2012-08-06 89 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