[Python-Dev] Classes and Metaclasses in Smalltalk (original) (raw)
Thomas Heller thomas.heller@ion-tof.com
Wed, 2 May 2001 16:53:17 +0200
- Previous message: [Python-Dev] Classes and Metaclasses in Smalltalk
- Next message: [Python-Dev] Classes and Metaclasses in Smalltalk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
This implementation of super works correctly:
import new
class super: def init(self, instance, klass): self.instance = instance self.klass = klass def getattr(self, name): for klass in (self.klass,) + self.klass.bases: member = getattr(klass, name, None) if member: if callable(member): return new.instancemethod(member, self.instance, klass) return member raise AttributeError(name)
class X: def test(self): print "test X"
class Y(X): def test(self): print "test Y" super(self, X).test()
class Z(Y): pass
X().test() print Y().test() print Z().test() print
Thomas
- Previous message: [Python-Dev] Classes and Metaclasses in Smalltalk
- Next message: [Python-Dev] Classes and Metaclasses in Smalltalk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]