繁体   English   中英

Python 3内置类型之间有什么关系?

[英]What is the relationship between Python 3 built-in types?

在python 3中,一切都是对象。 我画了一个关于类关系的图。 这个图正确吗?

在此处输入图片说明

困难的部分是关于类型和对象类的。 他们之间的关系如何? 类型是对象? 还是对象是类型?

>>> x=type
>>> type(x)
<class 'type'>
>>> x=object
>>> type(x)
<class 'type'>

据我所知,类关系在Python 3中有点像这样:

  • 每个类都是object子类
  • 每个类都是一个type实例

每个类都是由type类或另一个从type派生的元类创建的。 因此,每个类都是type (包括type !)的实例。每个类将为isinstance(cls, type)返回True

在Python 3中,每个类也是object的子类。 每个类或实例将为isinstance(cls_or_instance, object)返回True

元类是一个特例。 一个元类是从type派生的,因此每个元类将为issubclass(metaclass, type)isinstance(metaclass, type)返回True

类型对象本身就是一个对象。 请注意,尽管python的继承模型与其他OO语言不同,但它很大程度上取决于鸭子的类型而不是继承。

请注意, type(x)返回对象的类型, type(object)返回<class 'type'>意味着object的类型(所有对象都具有的type )就是type (所有类型的类型是), type本身就是类型,所以它的类型又是type

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM