On Fri, Apr 29, 2011 at 4:05 PM, Roy Hyunjin Han
<[email protected]> wrote:
>> You can implement this in your own subclass of dict, no?
>
> Yes, I just thought it would be convenient to have in the language
> itself, but the responses to my post seem to indicate that [not
> returning the updated object] is an intended language feature for
> mutable types like dict or list.
In general nothing stops you to use a proxy object that returns itself
after each method call, something like
class using(object):
def __init__(self, obj):
self._wrappee = obj
def unwrap(self):
return self._wrappee
def __getattr__(self, attr):
def wrapper(*args, **kwargs):
getattr(self._wrappee, attr)(*args, **kwargs)
return self
return wrapper
d = dict()
print using(d).update(dict(a=1)).update(dict(b=2)).unwrap()
# prints {'a': 1, 'b': 2}
l = list()
print using(l).append(1).append(2).unwrap()
# prints [1, 2]
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com