class" type"之间的关系是什么?和具体类型?

时间:2017-06-29 20:54:45

标签: python python-3.x class

班级type与特定类型之间的关系是什么?

我认为特定类型是type的子类,但是:

>>> type
<class 'type'>
>>> import builtins
>>> builtins.issubclass(type, object)
True
>>> builtins.issubclass(int, type)
False

感谢。

1 个答案:

答案 0 :(得分:4)

  

我认为特定类型是

类型的子类

他们不是。每个类都是elif board[row-1][col-1+x] == "S": return False 实例; type充当类的类。 type会在isinstance(class, type)正确返回True时返回issubclass

False返回issubclass的情况是使用实际从True继承的自定义元类(类类)。例如,取type

EnumMeta

这是>>> from enum import EnumMeta >>> issubclass(EnumMeta, type) ,因为TrueEnumMeta作为基类(继承自它):

type

如果你查看它的来源,你会发现它被定义为>>> EnumMeta.__bases__ (type,)

class EnumMeta(type): ...为所有内容返回issubclass(type, object)因为Python中的每一件事都是一个对象(意味着所有内容都继承自True)。