PEP8兼容深字典访问(pep8 compliant deep dictionary access)

2019-09-01 02:48发布

什么是PEP8兼容的方式做深层字典访问?

dct = {
    'long_key_name_one': {
        'long_key_name_two': {
            'long_key_name_three': {
                'long_key_name_four': {
                    'long_key_name_five': 1
                }
            }
        }
    }
}

E501线过长(118> 80个字符)

print dct['long_key_name_one']['long_key_name_two']['long_key_name_three']['long_key_name_four']['long_key_name_five']

E211空格前“[”

print dct['long_key_name_one']['long_key_name_two']\
    ['long_key_name_three']['long_key_name_four']['long_key_name_five']

E124右括号不匹配视觉缩进

print dct['long_key_name_one']['long_key_name_two'
    ]['long_key_name_three']['long_key_name_four']['long_key_name_five']

这通过PEP8,但似乎不太理想

print dct['long_key_name_one']['long_key_name_two'][
    'long_key_name_three'
]['long_key_name_four']['long_key_name_five']

有没有一种方法,打破了行,使其看起来不错,是符合PEP8?

Answer 1:

也许不是最好的方式,但它的工作原理:

a = dct['long_key_name_one']['long_key_name_two']
b = a['long_key_name_three']['long_key_name_four']['long_key_name_five']

但是,这也适用,这是建议的方法:

print (dct['long_key_name_one']['long_key_name_two']
       ['long_key_name_three']['long_key_name_four']
       ['long_key_name_five'])


Answer 2:

如果你用它在函数内部(你可以使用打印()的函数,因为据我所知2.7)

你可以只用一个括号内隐级联

print(dct['long_key_name_one']
         ['long_key_name_two']
         ['long_key_name_three']
         ['long_key_name_four']
         ['long_key_name_five'])


文章来源: pep8 compliant deep dictionary access
标签: python pep8