best way to code
Peter Otten
__peter__ at web.de
Fri Dec 19 11:35:11 EST 2008
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
More information about the Python-list
mailing list