带有类型提示的依赖注入

wint的Python项目详细描述


带有类型提示的wint依赖注入。

Build StatusCoverage Status

简介

wint是一个轻量级库,它通过类型提示实现依赖注入。

安装

只需使用pip:

$ pip install wint

工作原理

对di有很多方法,这个库只实现属性注入。

当应用autowireddecorator时,将检查所有类 带注释的属性。如果属性没有值,则将其替换为DependencyDescriptor

当在实例化的类实例上访问属性时,将解析依赖关系。

这种行为允许以懒洋洋的方式解决依赖关系,同时也带来了副作用实例的负面影响。 接收先前未存在的描述符属性。

示例

fromwintimportautowired,ContainerProviderclassPrinter:"""Abstract class for printing messages."""defprint(self,message):raiseNotImplementedErrorclassRealPrinter(Printer):"""Implementation of `Printer` which uses `print` to output messages."""defprint(self,message):print(message)@autowired()classPrintService:# RealPrinter will be automatically injected on property access.printer:Printerdefrun(self,msg):self.printer.print(f"{msg}, i'm running!")if__name__=="__main__":container=ContainerProvider.get()# Register RealPrinter as singleton implementation of Printer.container.register(Printer,RealPrinter())PrintService().run('hey')
$ python example.py
hey, i'm running!

注释

这个库建立在punq (麻省理工学院许可证)并使用它的供应商版本。

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

推荐PyPI第三方库


热门话题
java resultSet next()方法不返回任何值   java向数组中添加元素?   java在字符串中替换代词   使用ajax时java搜索数据库不工作   java tomcat表示此url不支持http方法post   java正在发生什么   java浏览器不生成文件下载对话框   带有CR和CF的java javascript textarea maxlength问题   javamaven:如何配置javadoc来生成所有私有和包   java问题:“用作trywithresources资源的变量应该是final或实际上是final”   java类只是为了语义   java httpclient在glassfish servlet中发布到https时出现“SSL证书错误”   java图形用户界面不可见错误   我的java CORBA聊天应用程序中出现“org.omg.CORBA.COMM_FAILURE:vmcid:SUN minor code:208 completed:Maybe”错误的原因是什么   javascript在服务器端创建电子邮件草稿并在用户客户端打开   java向JComboBox添加隐藏按钮   使用Java是可能的。awt。图像安卓应用程序