在其他函数odoo中调用函数
Call function inside other function odoo
我想在函数 1 中调用函数 2。
函数 2 需要参数(num2 和 num3),在源代码中调用后我没有收到任何错误,但也没有任何反应。
def function_1(self, cr, uid, ids, num1, num2, num3, context=None):
res = {}
if num1:
res['sum'] = num1 + num2
return {'value': res}
self.function_2(cr, uid, ids, num2, num3, context)
def function_2(self, cr, uid, ids, num2,num3, context=None):
res = {}
if num2:
res['sum2'] = num2 + num3
return {'value': res}
这里有什么问题或任何其他解决方案?
您不需要 function_2
中的 self
并且您还需要 return
关键字,因为在 function_2
计算之后 returns 它的值对于 function_1
的调用者,function_1
也必须 return 结果给它的调用者。如果你不添加 return 语句 function_1
最终会 returning None
给它的调用者。
def function_1(self, cr, uid, ids, num1, num2, num3, context=None):
# i'll place the function definition at the top (personal preference)
def function_2(cr, uid, ids, num2,num3, context=None):
res = {}
if num2:
res['sum2'] = num2 + num3
return {'value': res}
res = {}
if num1:
res['sum'] = num1 + num2
return {'value': res}
return function_2(cr, uid, ids, num2, num3, context=context)
我个人认为不需要嵌套函数。我会这样写的。
def function_1(self, cr, uid, ids, num1, num2, num3, context=None):
res = {}
if num1:
res['sum'] = num1 + num2
return {'value': res}
elif num2:
res['sum2'] = num2 + num3
return {'value': res}
else:
pass # return some default value here
我想在函数 1 中调用函数 2。
函数 2 需要参数(num2 和 num3),在源代码中调用后我没有收到任何错误,但也没有任何反应。
def function_1(self, cr, uid, ids, num1, num2, num3, context=None):
res = {}
if num1:
res['sum'] = num1 + num2
return {'value': res}
self.function_2(cr, uid, ids, num2, num3, context)
def function_2(self, cr, uid, ids, num2,num3, context=None):
res = {}
if num2:
res['sum2'] = num2 + num3
return {'value': res}
这里有什么问题或任何其他解决方案?
您不需要 function_2
中的 self
并且您还需要 return
关键字,因为在 function_2
计算之后 returns 它的值对于 function_1
的调用者,function_1
也必须 return 结果给它的调用者。如果你不添加 return 语句 function_1
最终会 returning None
给它的调用者。
def function_1(self, cr, uid, ids, num1, num2, num3, context=None):
# i'll place the function definition at the top (personal preference)
def function_2(cr, uid, ids, num2,num3, context=None):
res = {}
if num2:
res['sum2'] = num2 + num3
return {'value': res}
res = {}
if num1:
res['sum'] = num1 + num2
return {'value': res}
return function_2(cr, uid, ids, num2, num3, context=context)
我个人认为不需要嵌套函数。我会这样写的。
def function_1(self, cr, uid, ids, num1, num2, num3, context=None):
res = {}
if num1:
res['sum'] = num1 + num2
return {'value': res}
elif num2:
res['sum2'] = num2 + num3
return {'value': res}
else:
pass # return some default value here