方法的python挂钩
pyhooks的Python项目详细描述
pyhooks旨在公开类的方法钩子
目的
你想在方法之前或之后执行代码吗?pyhooks解 这个问题正是从棉花糖的钩子系统中得到灵感的。
安装
与其他发布的python包一样,您可以通过pip安装它
pip install pyhooks
如何使用?
要使用它,首先需要实现一个钩住的方法。你这样做是因为 用@hook修饰方法。
例如,假设有一个类在某个时刻保存数据(例如 作为数据库)。如果你想插入新的行为,你的代码 会像这样:
frompyhooksimportHookclassDatabaseEntry(object):@Hookdefsave(self):pass# save implementation here
感谢@hook行,您现在可以添加执行 在使用decorators@precall\u register保存方法之前和之后 以及@postcall\u register。
例如,如果要在 保存,您可以:
frompyhooksimportprecall_registerclassVersionnedEntry(DatabaseEntry):@precall_register("save")defincrement_version(self):self.version+=1
decorator指令向类指示increment_version应该 在作为参数传递给decorator的save方法之前运行。
示例
您可以在这个目录的examples/目录中找到更多的示例 储存库。
高级用法
您可以通过在decorator外部调用register decorator来专门化它。 上下文。最后一个例子将产生:
frompyhooksimportprecall_registerpre_save=precall_register("save")classVersionnedEntry(DatabaseEntry):@pre_savedefincrement_version(self):self.version+=1