python的插件和钩子调用机制

aioplugg的Python项目详细描述


Documentation Status

read the docs了解更多!

一个明确的例子

importaiopluggy,asynciohookspec=aiopluggy.HookspecMarker("myproject")hookimpl=aiopluggy.HookimplMarker("myproject")classMySpec(object):"""A hook specification namespace.
    """@hookspecdefmyhook(self,arg1,arg2):"""My special little hook that you can customize.
        """classPlugin_1(object):"""A hook implementation namespace.
    """@hookimpl.asyncioasyncdefmyhook(self,arg1,arg2):print("inside Plugin_1.myhook()")returnarg1+arg2classPlugin_2(object):"""A 2nd hook implementation namespace.
    """@hookimpldefmyhook(self,arg1,arg2):print("inside Plugin_2.myhook()")returnarg1-arg2asyncdefmain():# create a manager and add the specpm=aiopluggy.PluginManager("myproject")pm.register_specs(MySpec)# register pluginsawaitpm.register(Plugin_1())awaitpm.register(Plugin_2())# call our `myhook` hookresults=awaitpm.hook.myhook(arg1=1,arg2=2)print(results)asyncio.get_event_loop.run_until_complete(main())

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

推荐PyPI第三方库


热门话题
分别使用椭圆曲线密码对文本消息进行java加密和解密   java如何将JTable滚动到特定值?   java JSP登录注销简单web应用程序,使用bean在数据库中存在数据时返回false   java无法编译,未设置类路径,包不存在?   java为什么这一变量会受到影响?   集合为什么Java在Map中没有putIfAbsent(key,supplier)方法?   安卓在Java中计算仿真时间   java初始化方法在主类中的指定方法之前运行   java如何在hadoop的reduce中将genericWritable恢复为用户定义的可写?   如何使用java替换pdf中的文本   参数不适用于ASP服务器的java HttpPost   创建对象时的java NullPointerException   Java JPanel中的swing图形有问题,但它在一个框架中工作   java Android Studio在硬件设备上运行时出错   google api类路径的java空指针异常   java如何将InputStream转换为DataHandler?   java在多个Jetty服务器之间共享连接池