From: "Tim Peters" <tim.one@home.com> [__class_init__ methods] > I pinged Guido about this (he'll fire me if I ever do that again <wink>), > and he's really not keen on it. "The right way" is to define a custom > metaclass instead (whose __init__ plays the role __class_init__ would have > played if defined in the class). It makes sense to me, but I'll have to > play with it to be convinced it's as usable. It seems Guido is right ;-), it is easier than ever! C:\sf\python\dist\src\PCbuild>python Python 2.2b1+ (#25, Nov 6 2001, 21:18:43) [MSC 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> class metaclass(type): ... def __init__(self, *args): ... type.__init__(self, *args) ... try: ... cls_init = getattr(self, '__init_class__') ... except AttributeError: ... pass ... else: ... cls_init.im_func(self) ... >>> meta = metaclass('meta', (), {}) >>> class X(meta): ... def __init_class__(self): ... print "__init_class__", self ... __init_class__ <class '__main__.X'> >>> class Y(X): ... pass ... __init_class__ <class '__main__.Y'> >>> ^Z Now I'll have to find out how to convert this to C. Thomas
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4