can't find the right simplification

Lie Ryan lie.1296 at gmail.com
Fri Apr 24 08:01:33 CEST 2009


Stef Mientki wrote:
> hello,
> 
> I've a program where you can connect snippets of code (which I call a 
> "Brick") together to create a program.
> To make it easier to create these code snippets, I need some 
> simplifications.
> For simple parameters ( integer, tupple, list etc)  this works ok,
> and is done like this:
> 
> 
> class _Simple_Par ( object ) :
>    """
>    Class to make it more easy to set a Bricks.Par from a control.
>    So instead of :
>      self.Brick.Par [ self.EP[0] ] = Some_Value
>    you can write
>      self.P[0] = Some_Value
>    """
>    def __init__ ( self, control ) :
>        self.Control = control
>    def __setitem__ ( self, index, value ) :
>        i = self.Control.EP [ index ]
>        if i :
>            self.Control.Brick.Par [ i ] = value
> 
> Now I want a similar simplification for the case that Par is a dictionary:
> So instead of writing:
>      self.Brick.Par [ self.EP[0] ] [ 'Filename' ] = Some_Value
> 
> I would like to write:
>      self.P[0] [ 'Filename' ] = Some_Value
> 
> But I can't figure out how to accomplish that ?
> 
> Any suggestions ?
> 
> thanks,
> Stef Mientki

Do this work?

class _Simple_Par (object):
     def __init__(self, control):
##
         class P(object):
             def __init__(self, parent):
                 self.parent = parent
             def __getitem__(self, key):
                 return self.parent.Brick.Par[self.parent.EP[key]]

         self.P = P(self)
##
         self.Control = control

btw, it seems your code violated many of PEP 8 style recommendations.



More information about the Python-list mailing list