1
Pythionans奇怪的super()方法返回行爲使用臨時變量時,存儲超返回值
爲什麼這兩個函數返回不同的值使用一個臨時返回結果是什麼時候?
我從來沒有見過這種行爲,需要理解爲什麼。 任何線索或想法?
def _store_get_values(self, cr, uid, ids, fields, context=None):
return super(pai, self)._store_get_values(cr, uid, ids, fields, context)
返回
[(10, 'pai', [13484L], ['line_next_approver_id', 'next_approver_id', 'line_id', 'partner_id'])]
而且
def _store_get_values(self, cr, uid, ids, fields, context=None):
result = super(pai, self)._store_get_values(cr, uid, ids, fields, context)
return result
返回
[(10, 'pai', [13485L], ['line_id', 'next_approver_id', 'partner_id', 'line_next_approver_id'])]
我有這樣的的OpenERP/odoo框架。但我相信,這有沒有關係框架的邏輯,但與Python方式
我不相信Python本身在這裏扮演一些角色。這將是*真的*很奇怪。我認爲'_store_get_values'不能保證返回值的順序(很像'set()'或'dict()')。 FWIW,數字也不同:13484 vs 13485. –
這個數字是db的一個序列。但爲什麼這種行爲會導致雙向調用。總是將其稱爲樣式A或樣式B的結果相同 – progressdll
它一致的事實本身可能是您不應該依賴的任意決定。 – chepner