开发者社区> 问答> 正文

我可以将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 529 0
1 条回答
写回答
取消 提交回答
  • Enum是建立在OrderedDict之上的,因此name对应于key,value是value。改成:

    Example.A.value
    

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

    回答来源:stackoverflow

    2020-03-24 15:49:25
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载