开发者社区 问答 正文

我可以将Enum类型从字符串更改为字节吗?

我试图通过套接字发送一个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

展开
收起
is大龙 2020-03-24 15:49:17 557 分享 版权
1 条回答
写回答
取消 提交回答
  • Enum是建立在OrderedDict之上的,因此name对应于key,value是value。改成:

    Example.A.value
    

    具有字节类型,与name具有字符串类型(A)不同

    回答来源:stackoverflow

    2020-03-24 15:49:25
    赞同 展开评论
问答地址: