【问题标题】:How to limit lenght of a complicated line in Python?如何限制 Python 中复杂行的长度?
【发布时间】:2012-10-20 18:19:37
【问题描述】:

我正在根据PEP8 格式化我的代码,但我有一个小问题;就是这样:

print ("DB Updated: " + datetime.datetime.fromtimestamp(int(stats_dict["db_update"])).strftime('%a %b %d %H:%M:%S %Y'))

如何将其分成 72-79 个字符的行?

【问题讨论】:

    标签: python pep8 continuation


    【解决方案1】:

    我更喜欢:

    print("DB Updated: " + 
        datetime.datetime.fromtimestamp(
            int(stats_dict["db_update"])
        ).strftime('%a %b %d %H:%M:%S %Y')
    )
    

    请注意,只要整个表达式都在大括号中,就不需要换行符。

    在我看来,临时变量 suck 会降低可读性。

    OP 的更新:我将您的答案修改如下:

     print("DB Updated: " +
          datetime.datetime.fromtimestamp(
            int(stats_dict["db_update"])).
            strftime('%a %b %d %H:%M:%S %Y'))
    

    【讨论】:

    • 一团糟。要理解它,您需要跳到第 3 行,然后是第 2 行,然后是第 4 行,然后是第 1 行。和this比较一下
    【解决方案2】:
    from datetime import datetime
    
    dt = datetime.fromtimestamp(int(stats_dict["db_update"]))
    print("DB Updated: {:%a %b %d %H:%M:%S %Y}".format(dt))
    

    【讨论】:

      【解决方案3】:
      timestamp = int(stats_dict["db_update"])
      d = datetime.datetime.fromtimestamp(timestamp)
      msg = "DB Updated: {}".format(d.strftime('%a %b %d %H:%M:%S %Y'))
      print(msg)
      

      【讨论】:

      • 第二行太长(80 个字符)。考虑可能的身份。
      【解决方案4】:
      from datetime import datetime
      
      dt = datetime.fromtimestamp(int(stats_dict["db_update"]))
      print("DB Updated: " + dt.strftime('%a %b %d %H:%M:%S %Y'))
      

      【讨论】:

        【解决方案5】:
        print ("DB Updated: " + datetime.datetime.fromtimestamp(\
             int(stats_dict["db_update"]))\
             .strftime('%a %b %d %H:%M:%S %Y'))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-18
          • 1970-01-01
          • 1970-01-01
          • 2011-02-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多