![](/img/trans.png)
[英]How to use function variable of one class to another class in Python
[英]How to use one function variable in another function of same class in openerp?
我在fct1中有一个变量var_x。 我想在同一类代码的另一个函数fct2中使用相同的变量值:
def onchange_blockcreate(self, cr, uid, ids, block):
global family_code_id
global varname
if block:
cr.execute ('select activefrom,activeto from new_block where id=%s ',(block,))
family_code_id =cr.fetchone()[0]
msgalert = {'title':'Warning','message':}
return {'warning':msgalert}
def onchange_evaluation_date(self, cr, uid, ids,family_code_id,activefrom):
print activefrom
print family_code_id
if activefrom>=family_code_id:
print activefrom
else :
msgalert = {'title':'Warning','message':'fieldtocheck is too short!'}
return {'warning':msgalert}
这里的family_code_id用于第一个函数,我也想在第二个函数中使用相同的family_code_id。 但是它显示了一个错误:
未定义全局变量family_code_id。
在openerp中怎么可能?
您可能可以使用全局变量,但是通常有更好的方法。
我的第一个建议是将family_code_id
字段传递到两个on_change
事件中。 您是否担心两个呼叫之间的客户端会发生变化? 如果不是,只需将一个family_code_id
参数添加到onchange_blockcreate()
方法,然后将family_code_id
添加到XML文件的on_change
属性中的字段列表。
如果确定要使用全局变量,则可能需要在两个方法中都将其声明为全局变量,然后在onchange_evaluation_date()
方法中进行分配。 全局变量通常不是一个好主意,而类成员变量通常更好。 不过,OpenERP模型类是单例的,因此您通常不想保留任何状态。 一切都应通过方法参数输入。
您必须在Lable类中定义该变量
像---->全局family_code_id以及类标签中一样,它可以正常工作
您必须在类内定义变量,然后可以通过调用self.variable_name在类内的任何函数中检索该数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.