带有类型提示的依赖注入

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初学者Swing递归   java将hashmap转换为JSON字符串   cURL和java字符串变量出错   java为什么不将其视为多重继承,而所有类都首先从对象类扩展,然后再扩展其他类   java如何在eclipse中添加插件依赖项   使用java从Ms word表中提取图片   java实现可比较的接口   验证生成的事务时发生java错误。木栓   java@OneToMany和不同的主键   java Jaxb2在相对路径上找不到xsd架构   java客户端C++服务器数据发送/接收问题   javajaxws-webservice。改变节点结构   java如何将带有特殊字符的字符串转换为另一个转义字符串   netbeans如何链接JGraph传感器和Java邮件?   java如何在单个tomcat中检查每个web应用程序的内存大小?   客户端图形QLJava类生成器