【问题标题】:How should I shorten this line of Python code?我应该如何缩短这行 Python 代码?
【发布时间】:2016-02-16 20:33:49
【问题描述】:

这是需要缩短的行。

tree_top = os.path.abspath(os.path.expanduser(os.path.expandvars(sys.argv[1])))
  • 我应该为每个过程创建一个变量吗?
  • 我是否应该给 os.path,abspathos.path.expandvarsos.path.expanduser 取别名以使用更短的名称?
  • 我应该使用反斜杠吗?

【问题讨论】:

    标签: python python-2.7 pep8


    【解决方案1】:

    减小宽度的最简单方法是在括号内使用隐式续行:

    tree_top = os.path.abspath(
        os.path.expanduser(
            os.path.expandvars(sys.argv[1])
        )
    )
    

    或者,只需选择您需要的os.path 部分:

    from os.path import abspath, expanduser, expandvars
    
    tree_top = abspath(expanduser(expandvars(sys.argv[1])))
    

    或使用两者的某种组合。

    【讨论】:

      【解决方案2】:

      您可以使用 Python 的一个名为 Implicit Line Joining 的功能。

      括号之间的代码隐含地是同一指令的一部分,因此,您可以通过将其分成多行来“缩短”您的表达式:

      tree_top = os.path.abspath(
          os.path.expanduser(
              os.path.expandvars(
                  sys.argv[1]
              )
          )
      )
      

      现在,每一行都在 80 个字符以下,并且是干净的 PEP8 代码。

      如果您的操作的每个步骤都被更清晰地定义,使用中间变量也是缩短每个单独行的好方法。在某些情况下,它可以帮助使代码更清晰,但这里的中间步骤用处不大

      【讨论】:

      • 隐式线连接很漂亮。我会经常使用这个
      猜你喜欢
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多