本文简要介绍 python 语言中 matplotlib.cbook.CallbackRegistry
的用法。
-
基础:
object
处理一组信号和回调的注册、处理、阻塞和断开连接:
>>> def oneat(x): ... print('eat', x) >>> def ondrink(x): ... print('drink', x)
>>> from matplotlib.cbook import CallbackRegistry >>> callbacks = CallbackRegistry()
>>> id_eat = callbacks.connect('eat', oneat) >>> id_drink = callbacks.connect('drink', ondrink)
>>> callbacks.process('drink', 123) drink 123 >>> callbacks.process('eat', 456) eat 456 >>> callbacks.process('be merry', 456) # nothing will be called
>>> callbacks.disconnect(id_eat) >>> callbacks.process('eat', 456) # nothing will be called
>>> with callbacks.blocked(signal='drink'): ... callbacks.process('drink', 123) # nothing will be called >>> callbacks.process('drink', 123) drink 123
在实践中,当不再需要所有回调时,应始终断开所有回调,以避免悬空引用(从而导致内存泄漏)。然而,Matplotlib 中的实际代码很少这样做,并且由于其设计,放置这种代码相当困难。为了解决这个问题,并防止此类内存泄漏,我们只存储对绑定方法的弱引用,因此当目标对象需要死亡时,CallbackRegistry 不会使其保持活动状态。
- 参数:
- exception_handler 可调用的,可选的
-
如果不是 None,则
exception_handler
必须是采用Exception
作为单个参数的函数。它会被CallbackRegistry.process
期间回调引发的任何Exception
调用,并且可能会重新引发异常或以其他方式处理它。如果交互式事件循环正在运行,则默认处理程序会打印异常(使用
traceback.print_exc
);如果没有交互式事件循环正在运行,它会重新引发异常。 - signals 列表,可选
-
如果不是 None,则
signals
是此注册表处理的信号列表:尝试对不在列表中的信号执行process
或connect
会引发ValueError
。默认值“无”,不限制处理的信号。
用法
class matplotlib.cbook.CallbackRegistry(exception_handler=<function _exception_printer>, *, signals=None)
相关用法
- Python matplotlib ConnectionStyle用法及代码示例
- Python matplotlib CircleCollection.set_hatch用法及代码示例
- Python matplotlib ColorSequenceRegistry用法及代码示例
- Python matplotlib ColormapRegistry用法及代码示例
- Python matplotlib Collection.sticky_edges用法及代码示例
- Python matplotlib Collection.set_hatch用法及代码示例
- Python matplotlib CircleCollection.sticky_edges用法及代码示例
- Python matplotlib CenteredNorm用法及代码示例
- Python matplotlib ConciseDateFormatter用法及代码示例
- Python matplotlib axvspan用法及代码示例
- Python matplotlib Axes.get_legend_handles_labels用法及代码示例
- Python matplotlib AbstractMovieWriter用法及代码示例
- Python matplotlib triplot用法及代码示例
- Python matplotlib StarPolygonCollection.set_hatch用法及代码示例
- Python matplotlib Axes.hist用法及代码示例
- Python matplotlib boxplot用法及代码示例
- Python matplotlib subplots用法及代码示例
- Python matplotlib InsetPosition用法及代码示例
- Python matplotlib ToolManager.toolmanager_disconnect用法及代码示例
- Python matplotlib Figure.set_size_inches用法及代码示例
- Python matplotlib figlegend用法及代码示例
- Python matplotlib Axes.step用法及代码示例
- Python matplotlib Axes.contour用法及代码示例
- Python matplotlib LassoSelector用法及代码示例
- Python matplotlib BrokenBarHCollection.set_hatch用法及代码示例
注:本文由纯净天空筛选整理自skytowner.com大神的英文原创作品 matplotlib.cbook.CallbackRegistry。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。