一个简单的依赖注入库
syringe的Python项目详细描述
一个简单的依赖注入库。
用法示例
首先用@provides('a lookup name')装饰类。
>>> import syringe >>> >>> @syringe.provides('cure') ... class Syrup: ... def drink(self, person): ... print('Nom nom') ... person.health = 100 ...
实例化它。请注意,无法实例化的另一个实例 用名称cure修饰的类。
>>> syrup = Syrup()
接下来使用inject('a lookup name')将其注入另一个类中。
>>> class Person: ... cure = syringe.inject('cure') ... ... def drink_medicine(self): ... self.cure.drink(self) ...
当创建Person类的实例时,injecte名称的值 是提供并实例化的类的实例。
>>> person = Person() >>> person.health = 20 >>> assert person.cure == syrup >>> person.drink_medicine() Nom nom >>> assert person.health == 100
嘲笑
可以使用syringe.mock('a lookup name')
插入模拟实例>>> try: ... from unittest import mock ... except: ... import mock ... >>> m = syringe.mock('cure') >>> person.drink_medicine() >>> m.drink.assert_called_once_with(person)
安装
通过键入:
pip install syringe