sunnydi依赖注入框架

tycoon的Python项目详细描述


https://img.shields.io/pypi/v/sunnydi.svghttps://img.shields.io/pypi/status/sunnydi.svghttps://travis-ci.org/thomasstreet/sunnydi.svg?branch=masterhttps://coveralls.io/repos/github/thomasstreet/sunnydi/badge.svg?branch=masterDocumentation Status

sunnydi是 在python中管理和注入依赖项。

它的灵感来自于.net的AutofacGuice用于Java。

如何使用

在我们的例子中,我们将为helloservice创建一个ioc模块。

classHelloService(object):defhello(self):return'hello'

创建扩展sunnydi.ioc.module的新配置模块。 模块定义如何创建、销毁对象并将其提供给ioc对象图中的其他对象实例。 在最简单的配置中,我们只需将字符串名称绑定到helloservice类类型:

classHelloModule(Module):defconfigure(self):self.bind('hello_service').to(HelloService)

然后,我们可以创建注入器并像这样解决hello服务:

>>>hello_module=HelloModule()>>>injector=hello_module.create_injector()>>>hello_service=injector.get('hello_service')>>>hello_service.hello()'hello'

解析实例通过构造函数参数提供给使用类。 例如,给定以下类:

classMyClass(object):def__init__(self,hello_service):self._hello_service=hello_servicedefdo_hello(self):returnself._hello_service.hello()

由于 服务的绑定名与myclass构造函数中定义的参数匹配:

>>>my_class_instance=injector.get(MyClass)>>>my_class_instance.do_hello()'hello'

对于高级用法,请签出docs

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

推荐PyPI第三方库


热门话题
在Java7和Java8中从现有列表创建不同的列表?   java如何在HP ALM中上载测试结果   java请检查我想使用的代码,当用户在第一次输入中输入0时,条件必须停止   带显示列表的java OpenGL照明   尝试获取活动的DefaultSharedReferences时发生java NullPointerException   java如何区分日期时间类型应为yyyymmdd hh:mm:ss的两个日期   Java中对象上的循环   java jvm挂起并杀死3&jmap失败   Tomcat下的java URLClassLoader   java如何对基于KinesRecord的DoFn进行单元测试?   java Estado HTTP 404–找不到Eclipse/Tomcat   java Spring:缺少必需的请求正文。无法将JSON传递给RestController   java Drools工作台目标   java@Async在REST类中不起作用   rest如何在用户使用java输入时更有效地从Yammer获取消息?   java监视递归过程中创建的内部堆栈上的值   java如何集群和负载平衡Spring+OSGi应用程序   java NotSerializableException对象