在 Python 中处理嵌套与行长的策略

问题描述

最近我碰巧写了很多 Python 代码来进行文件处理/解析。经常困扰我的一件事,尤其是在这样的代码中,随着嵌套级别的增加,将行保持在一定长度以下(你好 PEP8)变得越来越困难。

我的解析代码经常有

  1. 一个
  2. 一个方法
  3. 使用 with
  4. 并遍历文件中的所有行
  5. 这可能会导致异常(try...except)

在伪代码中,例如大致像这样(该行标记了建议的最大行长度):

class file_parser():                                                          |
    def do_parse():                                                           |
        with open(f_in,"r") as fh:                                           |
            for line in fh:                                                   |
                try:                                                          |
                    if "test" in line:                                        |
                        parse_test(line)                                      |
                    else:                                                     |
                        parse_real(line)                                      |
                except ParseError as e:                                       |
                    log.warning(f"Failed to parse line {line} from file {f_in}: {e})

那已经是五层深了;缩进宽度为 4,即线宽的 25%。

当我知道的时候我很高兴

还有能力

有助于减少嵌套层数。

可能

也可以用来避免另一层嵌套;虽然我还没有看到具体的用例。

一个极端的情况下(在我看来),我将部分处理分解为一个单独的方法,只是为了让缩进“重新开始”。不知怎的,那感觉不对。

那么,这是我的问题

除了忽略(或 a)推荐的最大线长之外,经验丰富的开发人员还使用 Python 的哪些技巧、构造、策略或特性来解决这种“线宽空间损失”问题?或者这毕竟不是问题吗?虽然 I do not seem to be the only one thinking about it,但我没有找到太多解决嵌套代码(段)的具体情况。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)