Python:术语'类'VS'类型'

seb*_*piq 37 python types terminology class

只是一个简单的问题:我应该何时使用术语"类",何时应该在Python中使用术语"类型"?

  • 是'类'仅用于用户定义的类型,'type'用于内置类型?
  • 或者现在所有东西都是一种类型 ......即使用户定义的类,我应该总是使用'​​type'吗?
  • ......?

kni*_*tti 15

它或多或少具有历史性:它们在很久以前就已经不同了,不再具有实际意义.

编辑:class在提到具体实现时使用" " type,而在谈到高级数据结构,应用程序结构等时,以更加非正式的方式使用" " .在我的思考中,类型是更一般的东西,我不会想到每一个class作为一种独特的类型.

此外,当我使用元类(很少)我说类型.


kin*_*all 11

是,可以通过调用它,例如被用作用于该类的实例的模板的Python数据结构foo = Foo().

是可以通过继承的方式,例如可以使用作为模板用于附加类的类class Foo(Bar):

由于Python支持继承,因此所有类都可以用作其他类的模板,这意味着所有类实际上都是类型.

自从"新式类"的出现以来,尤其如此object,它将用户定义类的类型层次结构与内置类型统一起来.类总是类型,但现在他们是同种类型的内置类型.

尽管Python类是类型,但我仍然认为这种区别是有用的,所以这些术语在我看来并不完全是同义词.

额外定义:元类是一个类,其实例是类.在Python中,这些必须从type类派生,就像派生新样式对象一样object.