On 28 Apr, 15:01, Stef Mientki <stef.mien...@gmail.com> wrote: > hello, > > I have a class, derived from some user defined class > (User_Defined_Ancestor) and some basic class (Basic_Ancestor). > > One of the major tasks of the Basic_Ancestor, > is to hide all kinds of implementation details for the user, > so the user can concentrate on the functional design. > > One of things I need to know are the methods and attributes of the > Basic_Ancestor. > Both classes are dynamic, i.e. attributes are added during run time. > > class Master ( User_Defined_Ancestor, Basic_Ancestor ) : > def __init__ ( self, *args, **kwargs ) : > Basic_Ancestor.__init__ ( self, *args, **kwargs ) > ..... > > class Basic_Ancestor ( object ) : > def __init__ ( self, .... ) : > self.other = dir ( User_Defined_Ancestor ) > > def Get_Attributes ( self ) : > return dir ( self ) - dir ( self.other ) > > Now the problem is, I don't know "User_Defined_Ancestor" in Basic_Ancestor. > I can't pass it through the parameter list, because I use "*args, **kwargs" > I possibly could use some global variable, but that's not my preference. > > Any other suggestions ? > > thanks, > Stef Mientki
In anytime, if you do dir() in a class B, that extends a class A, you have all fields of A also. Example: >>> class A: ... def a(self): ... return 0 >>> class B(A): ... def b(self): ... return 5 >>> dir(A) [....., 'a'] >>> dir(B) [......, 'a', 'b'] Hi. -- http://mail.python.org/mailman/listinfo/python-list