From e149fa2a1e34d18497579fff198c7ac2feb19096 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 12 Aug 1994 12:49:46 +0000 Subject: * Objects/classobject.c, Include/classobject.h: added __getattr__ and __setattr__ support to override getattr(x, name) and setattr(x, name, value) for class instances. This uses a special hack whereby the class is supposed to be static: the __getattr__ and __setattr__ methods are looked up only once and saved in the instance structure for speed --- Include/classobject.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'Include/classobject.h') diff --git a/Include/classobject.h b/Include/classobject.h index bd6cc1dffb5..6b1b85b44ee 100644 --- a/Include/classobject.h +++ b/Include/classobject.h @@ -30,6 +30,12 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. /* Class object interface */ +#ifdef WITH_THREAD +#include "thread.h" +#else +#define get_thread_ident() 1L +#endif + /* Revealing some structures (not for general use) */ typedef struct { @@ -43,6 +49,12 @@ typedef struct { OB_HEAD classobject *in_class; /* The class object */ object *in_dict; /* A dictionary */ + object *in_getattr; /* A method or NULL */ + object *in_setattr; /* A method or NULL */ + long in_ident; /* A thread ident or 0 */ +#ifdef WITH_THREAD + type_lock *in_lock; /* A lock or NULL */ +#endif } instanceobject; extern typeobject Classtype, Instancetype, Instancemethodtype; -- cgit v1.2.3-65-gdbad