我试图通过套接字发送一个Enum值,但是无论我尝试什么,它都会被编码为字符串(除非我在调用socket.send时将其手动转换为字节)
class Example(Enum):
A = b'example'
B = bytes('example', 'utf8')
我从套接字模块调用send方法,其中sock是服务器的预先绑定套接字
....
conn, addr = sock.accept()
conn.send(Example.A.name)
异常消息是:
a bytes-like object is required, not 'str'
我已经阅读了此链接以及其他一些链接,但是找不到答案。
问题来源:stackoverflow
Enum是建立在OrderedDict之上的,因此name对应于key,value是value。改成:
Example.A.value
具有字节
类型,与name
具有字符串类型(A
)不同
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。