J'utilise des tampons de protocole dans python et j'ai un message Person
repeated uint64 id
mais quand j'essaye de lui attribuer une valeur comme:
person.id = [1, 32, 43432]
Je reçois une erreur: Assigment not allowed for repeated field "id" in protocol message object
Comment attribuer une valeur à un champ répété?
Conformément à la documentation , vous ne pouvez pas affecter directement à un champ répété. Dans ce cas, vous pouvez appeler extend
pour ajouter tous les éléments de la liste au champ.
person.id.extend([1, 32, 43432])
Si vous ne voulez pas étendre mais l'écraser complètement, vous pouvez faire:
person.id[:] = [1, 32, 43432]
Cette approche fonctionnera également pour vider complètement le champ:
del person.id[:]