方法的 Python 钩子
项目描述
PyHooks 旨在为类公开方法挂钩
地位
此项目已维护,请随时打开问题或拉取请求。
目的
您是否曾经想在方法之前或之后执行代码?PyHooks 从棉花糖的钩子系统中汲取灵感,解决了这个确切的问题。
安装
像任何其他已发布的 python 包一样,您可以通过pip安装它:
pip install pyhooks
如何使用 ?
要使用它,您首先需要实现一个挂钩方法。您可以通过使用@Hook装饰方法来做到这一点。
例如,假设您有一个类在某个时刻保存您的数据(例如数据库)。如果您希望能够插入新行为,您的代码将如下所示:
from pyhooks import Hook
class DatabaseEntry(object):
@Hook
def save(self):
pass # save implementation here
感谢@Hook行,您现在可以使用装饰器@precall_register 和@postcall_register添加在save方法之前和之后执行的函数。
例如,如果你想在保存之前增加一个版本变量,你可以这样做:
from pyhooks import precall_register
class VersionnedEntry(DatabaseEntry):
@precall_register("save")
def increment_version(self):
self.version += 1
装饰器指令向您的类指示应在作为参数传递给装饰器的保存方法之前运行increment_version 。
例子
您可以在此存储库的示例/目录中找到更多示例。
高级用法
您可以通过在装饰器上下文之外调用它来专门化寄存器装饰器。最后一个示例将产生:
from pyhooks import precall_register
pre_save = precall_register("save")
class VersionnedEntry(DatabaseEntry):
@pre_save
def increment_version(self):
self.version += 1
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pyhooks-1.0.3.tar.gz
(5.0 kB
查看哈希)
内置分布
pyhooks-1.0.3-py3-none-any.whl
(6.4 kB
查看哈希)