本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。