kwargs.get()未获取值

时间:2019-01-02 22:17:19

标签: python-3.x kwargs

我试图从Python 3的kwargs中提取一个值,但是失败了,我很难理解为什么。

代码:

def parse_config(**kwargs):
    import pdb; pdb.set_trace()
    _config = kwargs.get('configfile', os.path.join(os.path.expanduser('~'), '.dakcs_rsync.json'))
    print('Config file: {}'.format(_config))

结果:

Linux$ /home/user/tmp/rs.py -c
> /home/user/tmp/rs.py(226)parse_config()
-> _config = kwargs.get('configfile', os.path.join(os.path.expanduser('~'), '.rs.json'))
(Pdb) kwargs
{'configfile': None}
(Pdb) kwargs.get('configfile')
(Pdb) kwargs.get('configfile', 'blah')
(Pdb) _test = kwargs.get('configfile', 'foo')
(Pdb) print(repr(_test))
None
(Pdb) _test
(Pdb) sys.version_info
sys.version_info(major=3, minor=4, micro=9, releaselevel='final', serial=0)
(Pdb)

为什么kwargs.get()不能像我期望的那样检索configfile键的值?

1 个答案:

答案 0 :(得分:0)

我在脑海中浏览答案时找到了自己的答案。

dict.get()会在该键不存在时检索默认值。在这种情况下确实存在,但是其值为None。我一直认为,如果该值不存在或为None,它将为您提供一个默认值。我错了。