On Aug 22, 1:57 pm, Steven D'Aprano <steve +comp.lang.pyt...@pearwood.info> wrote:
> The relationship between type and object is somewhat special, and needs to > be bootstrapped by the CPython virtual machine. Since you are talking about CPython, I'm wondering how it is bootstraped since you can easly reference PyType in PyObject that part is not hard. > > 2) type is its own metaclass : type(type) is type ? > > Yes. Another bit of bootstrapping that the compiler does. self reference is easy same as referencing PyType from PyObject and PyObject from PyType. > > 5) type(any_object) == last_metaclass_..., which is, most of the time, > > type ? > > I'm not sure what you mean by "last_metaclass". But no. The type of an > object is its class: see this code for example proove my point: class meta_a(type): def __new__(cls, *args, **kwargs): return type.__new__(cls, *args, **kwargs) # see (¤) class meta_b(meta_a): def __new___(cls, *args, **kwargs): return meta_a.__new__(cls, *args, **kwargs) # same as above class ClassWithTypeMetaA(object): __metaclass__ = meta_a class ClassWithTypeMetaB(object): __metaclass__ = meta_b type(ClassWithTypeMetaA) == meta_a type(ClassWithTypeMetaB) == meta_b [¤] super call doesn't work here, anyone can say why ? Regards, Amirouche -- http://mail.python.org/mailman/listinfo/python-list