dataclassと同じ役割ならdataclassでいいのでは? って思いますよね? しかしながらprotocol bufferにはdataclassにはないものも含めてさまざまな利点があるのです。 利点 型安全 保存、読み込みが楽。 メジャーな言語を一通りサポート。dataclassはpythonでしか使えないけどprotocol bufferは他の言語でも使える。 RPCなどでの送受信が楽。 print時の可読性。全ての情報が表示される。複雑なprotocol bufferのデータであってもprintする際に割と綺麗に表示される。 Enumがある。しかもprintする際にEnumの番号ではなくEnumの名前を表示してくれる。 基本的な使い方(超オレ流) 最近プライベートで数千行スケールのpython開発を行う際、dataclassを使うのではなくprotocol bufferを使って開
![【python3】dataclassよりprotocol bufferを使う方がよくない? - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2d718626fc0f996f2faa2b111200ea8e95407ba2/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9JUUzJTgwJTkwcHl0aG9uMyVFMyU4MCU5MWRhdGFjbGFzcyVFMyU4MiU4OCVFMyU4MiU4QXByb3RvY29sJTIwYnVmZmVyJUUzJTgyJTkyJUU0JUJEJUJGJUUzJTgxJTg2JUU2JTk2JUI5JUUzJTgxJThDJUUzJTgyJTg4JUUzJTgxJThGJUUzJTgxJUFBJUUzJTgxJTg0JUVGJUJDJTlGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kODVkZTY1YTA3Y2VlODlkN2I2Y2YyMTRkZTNiMDIyYQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbWVudGFsX2RhbWVwbyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YTM3ODA4NjU5NTRlYjM2ZjNiNjNmZTY0NDhiNDU2NDg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D465ceeb34fc7608292092963930dacba)