basic language question
Jacek Generowicz
jacek.generowicz at cern.ch
Fri Sep 5 08:31:27 EDT 2003
More information about the Python-list mailing list
Fri Sep 5 08:31:27 EDT 2003
- Previous message (by thread): basic language question
- Next message (by thread): basic language question
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Stephan Diehl <stephan.diehl at gmx.net> writes: > Stephan Diehl wrote: > > > Terry Reedy wrote: > > > >> 'Returners' could wrap no-return mutators with functions or > >> derived-class methods that do return the object, but I have never seen > >> anyone post a complete module that does so for, say, all list > >> mutators. > > > > That's actually a nice idea. I might just do that. > > o.k., the following short code would give you a list class, that returns > 'self' when invoking any of the mutating methods. OK, here's a variaton on the theme, just wraps the object in-place in a way which makes it return self. This way you can get the desired effect on any object you get, without pre-meditation, so you can still fit the call chain on one line (wasn't that the point?) > The solution involves a metaclass Mine avoids them altogether. > and I wouldn't consider this code more as an example than an > industrial strength solution Ditto. class returner: def __init__(self, object): self.object = object def __getattr__(self, name): def proxy(*args, **kwds): getattr(self.object, name)(*args, **kwds) return self.object return proxy lst = [1,2,3] print lst.append(4) # Here you get None print returner(lst).append(5) # Here you get the modified list.
- Previous message (by thread): basic language question
- Next message (by thread): basic language question
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list