如何正确格式化 Python 中的长行?

How to properly format long lines in Python?

我相信我们都熟悉 PEP 8 及其对行长度的规范。不幸的是,数学是存在的。

我正在尝试在 Python 中编写非常长的方程(三角函数、复杂形状的表面积等),我希望能够在不破坏我的线条的情况下保持我的公式的清晰度很多。

例如,这个公式很长,在我的代码中可能会缩进很多次,让我没有太多的工作空间:

    slantHeight = ((math.sqrt(((baseSideLength/2) * (baseSideLength/2)) + heightSquared))

拆分这条线的推荐方法是什么?

你可以这样做:

slantHeight = math.sqrt(
    (  # halfBaseSideLengthSquared
        (  # halfBaseSideLength
            baseSideLength / 2) *
        (baseSideLength / 2)) +
    (  # heightSquared
        height * height))

或者这样:

def _(name, x):
    return x

slantHeight = math.sqrt(_('halfBaseSideLengthSquared', _('halfBaseSideLength', baseSideLength / 2) * (baseSideLength / 2)) + _('heightSquared', height * height))

您甚至可以删除 name 参数,因为它被忽略了,尽管我看不出这对任何事情有什么帮助。

我建议您不要太担心文件大小,而要关注可读性。多余的线条不会造成伤害。像这样:

halfBaseSideLength = (.5 * baseSideLength)
halfBaseSideLengthSquared = (halfBaseSideLength * halfBaseSideLength)

很有用,因为它减少了重复,尽管更好的做法是:

halfBaseSideLengthSquared = (.5 * baseSideLength) ** 2