[Twisted-Python] Events in Python
Andy Fundinger
Andy at NewWorldElectric.com
Wed Jan 30 15:50:43 EST 2008
Yeah, just keep a list of functions in your own code, no need to use twisted
for it and I've not seen twisted functions that really help. something
like:
class event(object):
def __init__(self):
self.subscribers=[]
def subscribe(self.f):
self.subscribers.append(f)
def invoke(self,*args,*kwargs):
for function in subscribers:
function(*args,**kwargs)
you can tweak that or whatever, but that's the basic pythonic way to do it
in my book(and in my code) a couple options to consider:
* in invoke, pass self to the function, I usually do that so I can have
functions that do whatever they do to the "event" subclass itself, as in a
clearOnFocus function attached to a text control which subclasses event,
whenever certain data is seen (type=focusEvent) clear the control.
* instead of storing functions store and .callback deffereds, of course
those can only be used once so change event.subscribe to event.wait for
clarity and reinitialize the list after invoke.
-Andy Fundinger
On Jan 30, 2008 3:15 PM, Simon Pickles <sipickles at hotmail.com> wrote:
> Hi,
>
> I have a stackless python app, using twisted in parts (.internet and
> .adbapi).
>
> I need a little help getting pythonic after years of c++ hell.
>
> I'd like to use a system of events and observers, like c++ boost.signal.
>
> I'd like to be able to subscribe multiple callbacks to a single function
> and cal them all using something like:
>
> event.invoke("some data to send with invocation")
>
> I'm thinking twisted callbacks do this:
>
> def observe(self, f);
> self.event.addcallback(f)
>
> Are there other ways?
>
> Thanks
>
> Si
>
> --
> Linux user #458601 - http://counter.li.org.
>
>
>
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
--
Blog: http://channel3b.wordpress.com
Second Life Name: Ciemaar Flintoff
I am a sig Virus. Please put me in your sig so that I can continue to
replicate.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20080130/8000b961/attachment.htm
More information about the Twisted-Python
mailing list