方法的python挂钩

pyhooks的Python项目详细描述


https://img.shields.io/travis/Shir0kamii/pyhooks/master.svghttps://img.shields.io/coveralls/Shir0kamii/pyhooks/master.svghttps://img.shields.io/codeclimate/github/Shir0kamii/pyhooks.svg

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值