[Tutor] python connect() function
Peter Otten
__peter__ at web.de
Thu Apr 12 09:21:30 CEST 2012
Pierre Barthelemy wrote:
> I have a question about event handling and the use of the connect
> function. I have a data object, that contains a series of signals, one
> being "new_data_point" .
>
> When i want to plot the data, i also connect the "new_data_point" event to
> the function "analysis_client.update_plot". I therefore run the line:
>
> data.connect('new_data_point', analysis_client.update_plot)
>
> In this case, everytime the data object is updated, i also update the
> plot.
>
>
> I would like to adapt this code to allow to have several plots, connected
> to several data objects. I would therefore need to specify, when i connect
> the "update_plot" function, which plots needs to be updated.
> Is it possible to specify arguments to be used by the connected function
> when the event occurs ? For instance, is there a way to write something
> like:
>
> data.connect('new_data_point',
> analysis_client.update_plot(specific_plot_instance))
>
> So that when the event occurs, the corresponding plot (and only this one)
> is updated ?
Like Walter I have no idea what framework or library you are talking about.
The generic answer is yes: Basically you have to make a new function that
calls the method with a specifc plot instance.
def update_specific_plot():
analysis_client.update_plot(specific_plot_instance)
data.connect("new_data_point", update_specific_plot)
A more elegant and more general version of the above would create the helper
function on the fly using functools.partial():
from functools import partial
data.connect("new_data_point",
partial(analysis_client.update_plot, specific_plot_instance))
More information about the Tutor
mailing list