当前位置: 首页 > wzjs >正文

关于学校网站建设经费的申请报告徐州市建设监理协会网站

关于学校网站建设经费的申请报告,徐州市建设监理协会网站,dede网站根目录,小金狮游戏ui培训pluggy的hook调用,最重要的就是使用了__call__魔法函数,这个函数能够在我们调用实例时,自动调用这个函数,无需自己手动调用。 前面介绍了各个类的方法,这里简述下pluggy的调用流程(主要介绍主流程&#xff…

pluggy的hook调用,最重要的就是使用了__call__魔法函数,这个函数能够在我们调用实例时,自动调用这个函数,无需自己手动调用。
前面介绍了各个类的方法,这里简述下pluggy的调用流程(主要介绍主流程,分支处理忽略)。
前面我们介绍了HookspecMarker和HookimplMarker这两个类,这两个类是用来作装饰器用的,spec相当于接口类,impl为实现类。我们这边还用之前的例子,来介绍下插件的注册调用流程。

import pluggyspec_test = pluggy.HookspecMarker('test11')
impl_test = pluggy.HookimplMarker('test11')class Spec:@spec_testdef pluggy_test(self, arg1):print(f'this is spec test and arg is {arg1}')passclass Impl1:@impl_testdef pluggy_test(self, arg1):print(f'this is test1 and arg is {arg1}')return arg1class Impl2:@impl_testdef pluggy_test(self, arg1):print(f'this is test2 and arg is {arg1}')return -1 * arg1pm = pluggy.PluginManager('test11')
pm.add_hookspecs(Spec)
pm.register(Impl1())
pm.register(Impl2())
res = pm.hook.pluggy_test(arg1=1)

pluggy.PluginManager(‘test11’)调用后实例化一个pm,注册执行流程都依靠pm管理。
add_hookspecs(Spec)在pm中增加一个spec。
在这里插入图片描述
这个方法中最重要的就是实例化了一个HookCaller的对象,并且把它放到self.hook中。
然后调用pm.register(Impl1())注册 插件
在这里插入图片描述
注册方法中比较重要的就是实例化了一个hookimpl对象,并且把它添加到hook中,具体看就是添加到_hookimpls的list中(整体在我们上面添加的HookCaller下)。
在这里插入图片描述
接下继续注册第二个插件Impl2,注意hook添加spec时,是按照方法名添加的。impl1和impl2中两个方法名是一样的,所以不会添加新的name来存放impl2下的pluggy_test。Impl2的pluggy_test也和impl1的pluggy_test注册在同一个HookCaller下。
最后调用 pm.hook.pluggy_test(arg1=1)来执行插件。这里的pluggy_test就是HookCaller对象(add_hookspecs步骤)。因为HookCaller类中有__call__函数,所以调用该对象时,会自动调用该方法。
在这里插入图片描述
执行方法就是最下面这行。_hookexec方法即是我们初始化HookCaller传入的。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
即我们在执行pm.hook.pluggy_test(arg1=1)的时候调用的_multicall方法执行插件方法。
这就是pluggy的整体注册调用流程,细节部分可结合前后文一起看下。

http://www.dtcms.com/wzjs/833248.html

相关文章:

  • 跨境电商网站排行榜通辽网站开发
  • 公司让做网站违法郑州网站建设丶汉狮网络
  • 专业的网站制作专业公司镇雄县城乡建设局网站
  • 合肥做双语外贸网站网站flash引导页
  • 深圳做网站建设的公司泉州网站建设方案服务
  • html网站地图如何建设企业微网站
  • 福州网站建设专业定制竞价排名广告
  • 深圳网站定制多少钱创鑫云网络
  • 建网站专业ui设计主要做什么工作
  • 企业营销网站的建设聊城网站建设的地方
  • 树莓派做网站服务器现在开网站做微商赚钱吗
  • 网站打不开别人能打开网站架构功能模块及描述
  • 怎么介绍自己做的电影网站特价锦州网站建设
  • 网站的建设服务器wordpress自定义首页
  • 网站关键词优化方案分为几个步骤备案个人可以做视频网站
  • 网站文章优化怎么做展览制作设计公司
  • 企业做企业网站的好处动态手机网站怎么做的
  • 网站建设策划稿wordpress评论后刷新
  • ps做电商网站流程图html怎么下载安装
  • wordpress 扒站设计网站要多久
  • 网络公司做的网站做百度推广去些网站加客户
  • 怎么制作网站小游戏马蹄室内设计网论坛
  • 做创意礼品的网站公司网站模板凡建站
  • 医药企业网站模板营销型网站的建设要求都有什么
  • 做网站项目的弊端郑州百度分公司
  • 网站建设亇金手指下拉排名罒电脑更新后wordpress
  • 石家庄城乡建设管理局网站2019Wordpress中文主题
  • 做包装设计的网站网站建站多少钱
  • 墓地网站建设价格企业网站可信认证必须做吗
  • 深圳外贸平台建站wordpress 主题 mirana免费下载