On Sat, 2005-11-19 at 16:45 +0100, Jan Eden wrote: > > Is there a way to dynamically determine the value of Super at runtime? > Background: Depending on certain object attributes which are set during the > object initialization, I need to use a different set of templates for the > respective object. > If you use new style classes, then there is a super function that can be used to automatically resolve a superclass reference. You can force new style classes by:
inherit from object easy to see, but repetitive __metaclass__ = type put before the class statements super(Myclass,self).__init__(...) will search through the inheritance tree and (in this case) invoke __init__. Use __bases__ to run up the inheritance yourself. >>> class A: ... pass ... >>> class B(A): ... pass ... >>> b.__class__.__bases__ (<class __main__.A at 0xb7e9311c>,) >>> B.__bases__ (<class __main__.A at 0xb7e9311c>,) The "magic" class attributes don't get listed by the dir command so you need to search the documentation to find this. http://docs.python.org/lib/specialattrs.html >>> dir(B) ['__doc__', '__module__'] >>> b = B() >>> dir(b) ['__doc__', '__module__'] -- Lloyd Kvam Venix Corp _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor