Python样式-语句是否应嵌套在不需要上下文的上下文管理器中?

时间:2019-01-24 17:37:00

标签: python with-statement pep8 contextmanager

是否有样式指导或理由偏爱其中一种模式?

最小化上下文管理器下的代码量对我来说更干净,但是我无法指出具体的原因。可能这只是偏好,对此没有官方指导。

1)内部包含上下文的所有代码。

with open(file) as f:
    text = f.read()
    data = text.split(',')
    result = my_func(data)
    # etc.

2)仅在上下文中包含必要的代码。

with open(file) as f:
    text = f.read()

data = text.split(',')
result = my_func(data)
# etc.

1 个答案:

答案 0 :(得分:0)

我认为在没有任何“样式指南”语句的情况下,可读性始终是准则-您希望在范围内轻松查看上下文管理器变量(上面的“ f”)的所有用法。一行和四行之间的可见性差异并不明显,但三行与50行之间的可见性差异可能很大。