class A: def a(self): pass def b(self): pass class B(A): def c(self): pass def d(self): pass def getmembres(klass, membres=None): # Retourner les membres de toute les classes if membres is None: membres = [] for k in klass.__bases__: getmembres(k, membres) for m in dir(klass): if m not in membres: membres.append(m) return membres print getmembres(A) print getmembres(B) print getmembres(IOError) """ ['__doc__', '__module__', 'a', 'b'] ['__doc__', '__module__', 'a', 'b', 'c', 'd'] ['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__dict__', '__getitem__', '__getslice__', '__setstate__', 'args', 'message', '__module__', '__slots__', 'errno', 'filename', 'strerror'] """