Objects are Python’s abstraction for data.
概念上的理解- python 中的所有实例都具有类型(type), 所有实例都是object类型的实例
# 1. 所有实例都具有类型 .... try: type(whatever) except NameError: pass else: assert False # 2.所有实例都是object的实例 assert isinstance(whatever, object) == True - type本身也具有类型
,且type是object的实例 assert type(type) == type assert isinstance(type, object)
这基本上表示了是类型系统的顶点。即 assert isinstance(type(whatever), type) assert isinstance(whatever.__class__, type)
对于来说,这是显然的事实。此外,可以验证 assert type(object) == type assert isinstance(object, type)
type与object的关系基本如此
属于metaclass。meta在代码中的含义可以理解为产生代码的代码,metaclass即为产生class的class。如下 assert type("abc") == str后续学习python metaprogramming部分可能会补充
- class X的默认类型为
, def foo的默认类型为
- class type(object):属于构造函数,基本上等价于返回object.__class__
- isinstance(object, classinfo):判断object.__class__与classinfo的关系。但注意**不是与classinfo.__class__**的关系。



