Here is a unit test which shows that this behavior is accepted by protobuf itself at runtime in both py2 and py3 https://github.com/dropbox/mypy-protobuf/pull/205
See discussion in #2491 Co-authored-by: Ivan Levkivskyi <ilevkivskyi@dropbox.com>