【问题标题】:Python - Long string on multiple linePython - 多行长字符串
【发布时间】:2015-05-23 03:00:10
【问题描述】:

是否有正确的方法在多行上显示长度超过 79 个字符(基于 pep8)的文件路径(硬编码),或者最好将文件路径保留在单行上?

例如

photos = "D:\MyWork\FieldWork\Year2015\January\MountainPass\Area1\Site1\Campsite2\Inspections\photos1"

上面的例子在多行还是单行上效果最好?

【问题讨论】:

    标签: python file directory


    【解决方案1】:

    我个人使用这种方法,并且在PEP8材料中看到过它:

    long_string = ('this is a really long string I want '
                   'to wrap over multiple lines')
    

    你也可以这样做:

    long_string = 'this is a really long string I want '\
                  'to wrap over multiple lines'
    

    根据 PEP8,您应该尽量将代码的最大宽度保持在 79 个字符,通常 docstrings 和 cmets 保持在 72 个字符。

    我还建议您查看os.path

    【讨论】:

    • 对于那些想知道的人,PEP 建议使用此字符限制,因为它通常是半个窗口的宽度;使程序员能够打开多个并排的窗口。
    • @ZachGates:什么是半窗?终端窗口通常为 80x25(或 80x24 或 80x50 或类似),许多其他工具(如 SO)默认为 80 个字符的宽度,因为它是源代码的一个古老而流行的标准;我很确定它适合整个窗口,这就是 PEP 8 背后的原因。我可以在我的(现代宽屏)监视器屏幕上以默认分辨率和字体大小以默认字体容纳大约 3.2 个终端窗口。跨度>
    • 半窗口是平均显示(1024×768 和 1366×768)的半屏。 @abarnert
    • @ZachGates:谁还在使用 1024x768 或 1.33x 的其他任何东西?我不记得上次看到不是“宽屏”的显示器是什么时候了。另外,Mac 上的默认 Terminal.app 窗口是 533 像素,Windows 上的 cmd.exe 看起来稍大一些,所以你可以t 实际上将其中两个放在 1024x768 屏幕上,而不会重叠或超出显示器边缘。再说一次,我很确定 PEP8 选择 80 列标准的原因是因为它早在 Python 或 1024x768 监视器之前就已经是一个流行的标准,甚至早于 80 列电传打字机和 VDU 的日子。
    • @ZachGates:……代码审查工具等使用适合屏幕上两个 80 列源文件的字体,因为那个古老的规则,而不是相反。
    【解决方案2】:

    最好不要有硬编码的文件路径。考虑使用相对路径或其他更稳健的方法。除非您只是制作一个快速脚本以单独在您的计算机上运行,​​在这种情况下,PEP8 想要您做什么并不重要。

    要真正回答这个问题,你可以这样做:

    photos = "D:\MyWork\FieldWork\Year2015\January\MountainPass\\"+\
             "Area1\Site1\Campsite2\Inspections\photos1"
    

    或者

    photos = ("D:\MyWork\FieldWork\Year2015\January\MountainPass\\",
         "Area1\Site1\Campsite2\Inspections\photos1")
    

    【讨论】:

    • 不需要添加+;它要么什么都不做,要么稍微放慢速度。添加逗号不仅没有必要,而且实际上会破坏代码;它给你一个由两个字符串组成的元组,而不是一个字符串。
    猜你喜欢
    • 2016-06-13
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2010-12-16
    • 2012-12-27
    • 2013-05-13
    • 2011-08-05
    相关资源
    最近更新 更多