Is it safe to use os.environ.setdefault?

balki picture balki · Jun 15, 2012 · Viewed 30.9k times · Source

From my ipython shell, I see a method setdefault in os.environ but it is not documented. http://docs.python.org/library/os.html#os.environ. Is it documented somewhere else?

def setdefault(self, key, failobj=None):
    if key not in self:
        self[key] = failobj
    return self[key]

Can I use this function or write a wrapper for those lines?

Answer

Martijn Pieters picture Martijn Pieters · Jun 15, 2012

The os.environ documentation does state it's a mapping:

A mapping object representing the string environment.

As such it behaves according to the python mapping documentation of which dict is the standard implementation.

os.environ therefor behaves just like the standard dict, it has all the same methods:

>>> import os
>>> len(os.environ)
36
>>> 'USER' in os.environ
True
>>> os.environ.fromkeys
<bound method classobj.fromkeys of <class os._Environ at 0x107096ce8>>

The .setdefault method is documented on the same page as the rest of the mapping methods, and you can use it just fine as is.