首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -数据模型-子类Vs实例

Python -数据模型-子类Vs实例
EN

Stack Overflow用户
提问于 2017-06-02 12:41:11
回答 2查看 1.2K关注 0票数 4

对于用户定义的类型X

代码语言:javascript
复制
>>> class X(object):
...     pass
... 
>>> issubclass(X, object)    # User-defined type
True
>>> isinstance(X, object)    # User-defined type
True

Q) X是如何作为object的子类和实例的

代码语言:javascript
复制
>>> issubclass(int, object)  # Built-in type
True
>>> isinstance(int, object)  # Built-in type
True

Q) int作为object的子类和实例的行为方式

代码语言:javascript
复制
>>> issubclass(type, object)  # Meta class
True
>>> isinstance(type, object)  # Meta class
True

Q) type如何既可以是object的子类,也可以是object的实例

代码语言:javascript
复制
>>> issubclass(object, type)
False
>>> isinstance(object, type)
True

object不是子类,而是type的实例,这很有意义。

代码语言:javascript
复制
>>> issubclass(int, type)
False
>>> isinstance(int, type)
True
>>> 

int不是子类,而是type的实例,这是有意义的。

代码语言:javascript
复制
>>> issubclass(X, type)      # User-defined type
False
>>> isinstance(X, type)      # User-defined type
True

也说得通。

编辑:

这里说,引入新样式类的主要动机是提供一个具有完整元模型的统一对象模型。

Q)如何理解统一对象模型的含义?

Q)什么是元模型?

Q)说,typetype实例意味着什么?

EN

回答 2

Stack Overflow用户

发布于 2017-06-02 12:55:00

您的所有三个问题都归结为“X如何同时成为object的子类和实例”。答案很简单:一切都是object的子类。类是对象(=object的实例),因此子类(包括object的子类)也是object的实例。

票数 6
EN

Stack Overflow用户

发布于 2017-06-02 13:05:29

Python中的所有东西都是一个对象,而isinstance(whatever, object) == True只是一种表达方式。因此,通过设计,常规对象和任何类型都是对象的实例。有些类继承对象以提供附加功能(在Py3k中所有这些都是这样),例如,typeobject的一个子类,它作为实例生成另一种类型,例如,Int是为实例化整数量身定制的type (和object)的子类。因此,您可能会问-为什么有一个python对象object,为什么这甚至是您可以传递的东西等等。答案是- mro,伙计。事实证明,类型object提供了一组方便的描述符,这些描述符作为大量其他类型的缺省值被调用(因为类型最终从object继承了大部分功能)。

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

https://stackoverflow.com/questions/44329238

复制
相关文章

相似问题

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