best way to code

miya nmiyasato at gmail.com
Sat Dec 20 19:26:25 EST 2008


On Dec 19, 2:35 pm, Peter Otten <__pete... at web.de> wrote:
> eric wrote:
> > hi,
>
> > I need to find a "good" design pattern to instanciate, and add
> > specific code all in one. Let me explain it :
>
> > I need to define "some" code, better be in a class, something like
>
> > class LinkA(object):
> >     def mystuff(self):
> >          <do something different>
>
> > class LinkB(object):
> >     def mystuff(self):
> >          <do something different again>
>
> > AND I need an instance of this class
> > { "stuff A": LinkA()
> >   "stuff B": LinkB()
> > }
>
> > This kind of code "would" be fine, I mean, the result effect in memory
> > is fine for me.
> > But I don't like the way I have to
> > 1/ give a useless name to LinkA, linkB (there can be hundreds of names
> > like that)
> > 2/ I have to write it down two times (and that's one time too much)
>
> > any ideas ?
>
> > something like
> > [
> > new object():
> >     def mystuff(self):
> >        <do something>
> > ,
> > new object():
> >     def mystuff(self):
> >        <do something else>
> > ]
>
> > would be really perfect (but I know it does not work, or at least, I
> > don't know how to make it work)
>
> > In fact, I would like to define a class, and an instance in a single
> > statement
> >>> class Register:
>
> ...     def __init__(self):
> ...             self.items = []
> ...     def __call__(self, method):
> ...             class Link(object):
> ...                     mystuff = method
> ...             self.items.append(Link())
> ...>>> register = Register()
> >>> @register
>
> ... def mystuff(self): print "first"
> ...>>> @register
>
> ... def mystuff(self): print "second"
> ...>>> for item in register.items:
>
> ...     item.mystuff()
> ...
> first
> second
>
> Peter

Wow, loved this solution. Never thought about using decorators to
solve this kinda problems.

nice

-
Nicolás Miyasato (miya)
http://myPythonNotes.wordpress.com
http://nmiyasato.blogspot.com



More information about the Python-list mailing list