почему PyObject * может указывать на любой объект в Python?

В исходном коде Python есть некоторые макроопределения, подобные этому:

#define PyObject_HEAD    \
    int ob_refcnt;       \
    struct _typeobject *ob_type;


#define PyObject_VAR_HEAD  \
    PyObject_HEAD          \
    int ob_size; 


typedef struct _object {  
    PyObject_HEAD  
} PyObject;    

typedef struct _object {  
    PyObject_HEAD   
    long ob_ival;   
} PyIntObject;   

typedef struct {   
    PyObject_VAR_HEAD   
} PyVarObject;   

Вопрос в том, почему PyObject * может указывать на каждый объект (например, PyIntObject, PyVarObject) в python?

Ответы на вопрос(2)

Ваш ответ на вопрос