mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
typedef struct _typeobject {
 | 
						|
    PyObject_VAR_HEAD
 | 
						|
    const char *tp_name; /* For printing, in format "<module>.<name>" */
 | 
						|
    Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */
 | 
						|
 | 
						|
    /* Methods to implement standard operations */
 | 
						|
 | 
						|
    destructor tp_dealloc;
 | 
						|
    Py_ssize_t tp_vectorcall_offset;
 | 
						|
    getattrfunc tp_getattr;
 | 
						|
    setattrfunc tp_setattr;
 | 
						|
    PyAsyncMethods *tp_as_async; /* formerly known as tp_compare (Python 2)
 | 
						|
                                    or tp_reserved (Python 3) */
 | 
						|
    reprfunc tp_repr;
 | 
						|
 | 
						|
    /* Method suites for standard classes */
 | 
						|
 | 
						|
    PyNumberMethods *tp_as_number;
 | 
						|
    PySequenceMethods *tp_as_sequence;
 | 
						|
    PyMappingMethods *tp_as_mapping;
 | 
						|
 | 
						|
    /* More standard operations (here for binary compatibility) */
 | 
						|
 | 
						|
    hashfunc tp_hash;
 | 
						|
    ternaryfunc tp_call;
 | 
						|
    reprfunc tp_str;
 | 
						|
    getattrofunc tp_getattro;
 | 
						|
    setattrofunc tp_setattro;
 | 
						|
 | 
						|
    /* Functions to access object as input/output buffer */
 | 
						|
    PyBufferProcs *tp_as_buffer;
 | 
						|
 | 
						|
    /* Flags to define presence of optional/expanded features */
 | 
						|
    unsigned long tp_flags;
 | 
						|
 | 
						|
    const char *tp_doc; /* Documentation string */
 | 
						|
 | 
						|
    /* call function for all accessible objects */
 | 
						|
    traverseproc tp_traverse;
 | 
						|
 | 
						|
    /* delete references to contained objects */
 | 
						|
    inquiry tp_clear;
 | 
						|
 | 
						|
    /* rich comparisons */
 | 
						|
    richcmpfunc tp_richcompare;
 | 
						|
 | 
						|
    /* weak reference enabler */
 | 
						|
    Py_ssize_t tp_weaklistoffset;
 | 
						|
 | 
						|
    /* Iterators */
 | 
						|
    getiterfunc tp_iter;
 | 
						|
    iternextfunc tp_iternext;
 | 
						|
 | 
						|
    /* Attribute descriptor and subclassing stuff */
 | 
						|
    struct PyMethodDef *tp_methods;
 | 
						|
    struct PyMemberDef *tp_members;
 | 
						|
    struct PyGetSetDef *tp_getset;
 | 
						|
    struct _typeobject *tp_base;
 | 
						|
    PyObject *tp_dict;
 | 
						|
    descrgetfunc tp_descr_get;
 | 
						|
    descrsetfunc tp_descr_set;
 | 
						|
    Py_ssize_t tp_dictoffset;
 | 
						|
    initproc tp_init;
 | 
						|
    allocfunc tp_alloc;
 | 
						|
    newfunc tp_new;
 | 
						|
    freefunc tp_free; /* Low-level free-memory routine */
 | 
						|
    inquiry tp_is_gc; /* For PyObject_IS_GC */
 | 
						|
    PyObject *tp_bases;
 | 
						|
    PyObject *tp_mro; /* method resolution order */
 | 
						|
    PyObject *tp_cache;
 | 
						|
    PyObject *tp_subclasses;
 | 
						|
    PyObject *tp_weaklist;
 | 
						|
    destructor tp_del;
 | 
						|
 | 
						|
    /* Type attribute cache version tag. Added in version 2.6 */
 | 
						|
    unsigned int tp_version_tag;
 | 
						|
 | 
						|
    destructor tp_finalize;
 | 
						|
 | 
						|
} PyTypeObject;
 |