4.9 不支持的类型

在我们深入了解各个标准类型之前,我们在本章的结束列出Python目前还不支持的数据类型(因为在不同的语言中其相应的命名可能有诧异,所以为了不扰乱读者,在各节开头保持了类型原文——译者注)。

  1. char或 byte

Python没有char或byte类型来保存单一字符或8位整型。你可以使用长度为1的字符串表示字符或8位整型。

2.指针

Python替你管理内存,因此没有必要访问指针。在Python中你可以使用id()函数得到一个对象的身份号,这是最接近于指针的地址。因为你不能控制这个值,所以其实没有太大意义。其实在Python中,一切都是指针。

  1. int vs short vs long

Python的普通整型相当于标准整型类型,不需要类似C语言中的int、short和long这三种整型类型。事实上Python的整型实现等同于C语言的长整型。由于Python的整型与长整型密切融合,用户几乎不需要担心什么。你仅需要使用一种类型,就是Python的整型。即便数值超出整型的表达范围,比如两个很大的数相乘,Python会自动的返回一个长整型给你而不会报错。

  1. float vs double

C语言有单精度和双精度两种浮点类型。Python的浮点类型实际上是C语言的双精度浮点类型。 Python认为同时支持两种浮点类型的好处与支持两种浮点类型带来的开销不成比例,所以Python决定不支持单精度浮点型。对那些宁愿放弃更大的取值范围而需要更高精确度的用户来说,Python还有一种十进制浮点型类型Decimal,不过你必须导入decimal模块才可以使用它。浮点型总是不精确的。Decimals则拥有任意的精度。在处理金钱这类确定的值时,Decimal类型就很有用。在处理重量、长度或其他度量单位的场合,float足够用了。