kwargs.get () не получает значение - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь получить значение из kwargs в Python 3, но не получается, и мне очень трудно понять, почему.

код:

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 голосов
/ 03 января 2019

Я нашел свой ответ, пока хешировал его в своей голове.

dict.get() возвращает значение по умолчанию, ЕСЛИ КЛЮЧ НЕ СУЩЕСТВУЕТ. В этом случае он существует, но его значение равно None. Я всегда думал, что это даст вам значение по умолчанию, если значение не существует или было None. Я был не прав.

...