Getting the "dir" from the other ancestor ?

tuxagb alessiogiovanni.baroni at gmail.com
Tue Apr 28 09:18:25 EDT 2009


On 28 Apr, 15:01, Stef Mientki <stef.mien... at 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.



More information about the Python-list mailing list