bal*_*lki 22 python dictionary environment-variables python-os
从我的ipython shell中,我在os.environ中看到了一个方法setdefault,但没有记录.http://docs.python.org/library/os.html#os.environ.它是否记录在其他地方?
def setdefault(self, key, failobj=None):
if key not in self:
self[key] = failobj
return self[key]
Run Code Online (Sandbox Code Playgroud)
我可以使用此功能或为这些线写一个包装器吗?
Mar*_*ers 27
该os.environ
文件确实说明这是一个映射:
表示字符串环境的映射对象.
因此,它的行为符合python 映射文档,其中dict
标准实现.
os.environ
因此行为与标准dict一样,它具有所有相同的方法:
>>> import os
>>> len(os.environ)
36
>>> 'USER' in os.environ
True
>>> os.environ.fromkeys
<bound method classobj.fromkeys of <class os._Environ at 0x107096ce8>>
Run Code Online (Sandbox Code Playgroud)
该.setdefault
方法与其他映射方法记录在同一页面上,您可以按原样使用它.
为了澄清---我不得不考虑一下这个问题和答案意味着什么 - 关于os.environ的Python.org文档并没有提到映射类型的所有内置方法(例如os.environ,它基本上是一个字典,已经给出了其他方法).
相反,他们主要提到他们给os中的一个对象的额外方法,名为environ并从类型dict派生,超出了已经内置的dict.从我在Python上的一本书,任何字典类型的概要是dict.setdefault(key,default = None),解释是它类似于get()但它设置了dict [key] = default如果key不在dict中.
default可能在这里没有被很好地选为名称,因为它很容易与somevariablename = defaultvalue混淆,后者是在函数声明中声明默认值的常规方法.也就是说,虽然default = None肯定设置了默认值,但不清楚setdefault在任何意义上如何设置默认值,因为默认值可以给出任何值.
归档时间: |
|
查看次数: |
23058 次 |
最近记录: |