2

protocol buffer python generated code documentationに従って、次の方法でオブジェクトを繰り返しメッセージフィールドに追加できます。

foo = Foo()
bar = foo.bars.add()        # Adds a Bar then modify
bar.i = 15
foo.bars.add().i = 32       # Adds and modify at the same time

しかし:

  1. barから削除するにはどうすればよいbarsですか?

  2. n-thからバー要素を削除するにはどうすればよいbarsですか?

4

1 に答える 1

4

プロトバッファコンパイラを正しくインストールするのに数分以上かかったので、これを無視するのに十分な理由かもしれません:)

ドキュメントにはありませんが、実際には繰り返しフィールドを通常のリストと同じように扱うことができます。プライベート メソッドとは別に、add、、extendremoveをサポートしており、最初のケースで探しているのは次のとおりです。sortremove

foo.bars.remove(bar)

foo上記の行の前 (上記のコードで定義されている) とその後に印刷した場合の出力は次のとおりです。

Original foo:
bars {
  i: 15
}
bars {
  i: 32
}

foo without bar:
bars {
  i: 32
}

nth要素の削除に関しては、del削除するインデックス位置を 使用できます。

# Delete the second element
del foo.bars[1]

そして出力:

Original foo:
bars {
  i: 15
}
bars {
  i: 32
}

Removing index position 1:
bars {
  i: 15
}

それが役立つことを願っています!

于 2012-12-06T02:34:28.010 に答える