首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyBytes_Type和PyString_Type有什么区别?

PyBytes_Type和PyString_Type有什么区别?
EN

Stack Overflow用户
提问于 2014-12-13 15:40:10
回答 1查看 778关注 0票数 1

看起来Python2有PyString_Type,而Python3有PyBytes_Type。

引擎盖下面是怎么回事?

我正在编写一个C++包装器(目前正在包装Python3,但希望稍后添加Python2支持),我刚刚开始处理包装字符串的任务。

2和3都为字节字符串和Unicode字符串提供了单独的支持,但它们只是进行了一些重命名,这是正确的吗?

如果是这样,那么这张表正确吗?:

代码语言:javascript
复制
Py2 byte-string ~ PyString_Type             Py2 Unicode-string ~ PyUnicode_Type 
Py3 byte-string ~ PyBytes_Type              Py3 Unicode-string ~ ?

如果是的话,如何完成呢?

编辑:字符串的Python2文档说:

这些函数已在Python3.x*中重命名为PyBytes_ 。除非另有说明,3.x中可用的PyBytes函数被别名为它们的PyString_*等效项,以帮助移植。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-13 15:47:50

在Python2中,str包含字节(bytes == str类型),unicode包含Unicode字符串。因此,2.x有效地具有三种类型。

在Python3中,bytes包含字节,str包含Unicode字符串。3.x中的str类型是2.x的unicode类型。因此,3.x有效地具有两种类型。这是您应该采取的概念性方法,任何与2.x相关的工作都应该以这种方式将Unicode字符串和字节分开。

基于文档中的本节,这意味着在Unicode字符串的2.x和3.x中都使用了PyUnicodePyBytes用于两种类型中的字节字符串,而PyString类型在Python2.x中只有意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27460578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档