Python中的类与类型

我最近刚开始自学如何编码。 我目前正在阅读Think Python 2 for python 3,当它讲述type()函数时,它给出了输出<class 'int'>的示例type(2) 。 然后它说:“类'这个词是用于某个类别的意思;类型是一类值。”

迷惑我的部分是type()函数输出类而不是类型。 另外,我不确定类型和类之间的区别。 是类型“值”的字符串,浮点数和整数类,还是它们是同一个东西?

我已经看过这个,但找不到我的具体问题的答案或足够简单,让我明白。


曾几何时,Python拥有类型和类别。 类型是C中定义的内置对象; 类是您在使用class声明时构建的。 两人的名字不同,因为你不能混用这些; 类不能扩展类型。

这种差异是人为的,这是语言实施中的限制。 从Python 2.2开始,Python的开发人员慢慢地将这两个概念统一起来,除了Python 3以外,所有这些差异都已消失。内置类型现在也被标记为类,您可以随意扩展它们。

您的书正试图解释Python中不存在的差异。 即使在Python 2中,区别也仅限于名称,因为type(2)显示仍在此处使用单词“type”:

>>> type(2)
<type 'int'>

但你可以像其他任何类一样继承int

(Python 2仍然有旧式的类,那些没有从object继承的类;这些是统一之前的旧系统的剩余部分。)


python层次结构是Type(Metaclass) - > Class - > Instance。 把函数type()看成是上一层。

如果你在一个int (任何整数)的实例上使用函数type() ,如下所示: type(123)你会收到实例的类,在本例中为int 。 如果要在类int使用type() ,则将接收作为int的元type type

请记住,metaclasses是python的高级技术细节,您不需要首先了解它们。

链接地址: http://www.djcxy.com/p/53151.html

上一篇: Class vs. Type in Python

下一篇: Why do Python yield statements form a closure?