Odoo Help


Why context=None ?

on 4/13/15, 11:20 AM 1,513 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 = {}

Why they have not used context={}? like

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

can anyone shade light on it?

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

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.


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)


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