On 19/05/2007 3.34, Raymond Hettinger wrote:

> * Make sets listenable for changes (proposed by Jason Wells):
> 
>     s = set(mydata)
>     def callback(s):
>          print 'Set %d now has %d items' % (id(s), len(s))
>     s.listeners.append(callback)
>     s.add(existing_element)       # no callback
>     s.add(new_element)            # callback

-1 because I can't see why sets are so specials (compared to other containers 
or objects) to provide a builtin implementation of the observer pattern.

In fact, in my experience, real-world use cases of this pattern often require 
more attention to details (eg: does the set keep a strong or weak reference to 
the callback? What if I need to do several *transactional* modifications in a 
row, and thus would like my callback to be called only once at the end?).
-- 
Giovanni Bajo

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to