2

重複の可能性:
Python でチェーンされたメソッドの行を分割する方法は?

次の質問は python コードスタイルに関するもので、再利用可能なライブラリの設計である可能性があります。したがって、次のように、グラフの作成を単一の大きな行にチェーンするビルダーがあります。

graph.builder() \
        .push(root) \
        .push(n1) \
        .arc(arcType) \ #root-arc-n1 error is there
        .push(n2) \
...

4 行目で、間違った記号 (#) に関するエラーが表示されます。したがって、長いビルダー パスに対して適切にコメントされたコードを生成する方法についての一般的な質問です。また、良い答えとして、コードを明確にするためのコメントを許可するビルダーの変更に関する提案をいただければ幸いです。

4

3 に答える 3

1

You can best do that by using intermediate variables:

builder = graph.builder()
builder = builder.push(root).push(n1)
builder = builder.arc(arcType)  #root-arc-n1 error is there
builder = builder.push(n2). # ... etc. ...
于 2012-11-10T09:54:32.880 に答える
1

全体を括弧で囲むと、Python はそれを単一の式として扱うようになります。

(graph.builder()
    .push(root)
    .push(n1)
    .arc(arcType) #root-arc-n1 error is there
    .push(n2)
)

ビルダー メソッドを作り直して、次のことを許可したくなるかもしれません。

graph.builder(lambda g: g
    .push(root)
    .push(n1)
    .arc(arcType) #root-arc-n1 error is there
    .push(n2)
)

括弧の位置をより賢明にするためだけに

于 2012-11-10T11:41:49.400 に答える
0

見た目はあまり良くありませんが、これによりインラインコメントを使用できます。

graph.builder(
    ).push(root
    ).push(n1
    ).arc(arcType #root-arc-n1 error is there
    ).push(n2)

http://www.python.org/dev/peps/pep-0008/#maximum-line-length

于 2012-11-10T10:00:01.437 に答える