Odoo Help

1

Why context=None ?

By
Vincent
on 4/13/15, 11:20 AM 1,318 views

My question is bit pythonic. but I am curious to know the answer.

I have seen in method Odoo is passing context=None. like

def create(self, cr, uid, vals, context=None):
     if not context: context = {}
     '''
     code
     '''

Why they have not used context={}? like

def create(self, cr, uid, vals, context={}):
     '''
code
     '''

can anyone shade light on it?

0
NUMERIGRAPHE
On 6/16/15, 3:40 AM

Because {} is mutable and None is immutable.

Mutable default values are awkward: if you change the value in you function it will also change the *default* value for all later calls of your function.

See https://doc.odoo.com/contribute/15_guidelines/coding_guidelines_framework/#the-infamous-context

The lengthy discussion about that here: https://bugs.launchpad.net/openobject-addons/+bug/525808

-1
Ludovic CHEVALIER
On 4/14/15, 2:58 AM

This notation in python mean that context is a optionnal arg of the function. If no context is given, context is equal to none.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)

Stats

Asked: 4/13/15, 11:20 AM
Seen: 1318 times
Last updated: 6/16/15, 3:40 AM