python代码依赖注入

pycdi的Python项目详细描述


https://travis-ci.org/ettoreleandrotognoli/python-cdi.svg?branch=masterhttps://codecov.io/gh/ettoreleandrotognoli/python-cdi/branch/master/graph/badge.svghttps://badge.fury.io/py/pycdi.svghttps://img.shields.io/pypi/dm/pycdi.svgMaintainabilityTest CoverageCodeFactor

一个简单的python cdi(代码依赖注入)库。

请参阅code of conduct

安装

安装稳定的pycdi

pip install pycdi

安装最新的pycdi

pip install git+https://github.com/ettoreleandrotognoli/python-cdi

用法

Python2和Python3

您可以在examples文件夹中看到更多示例(examples/common)。

importloggingfromloggingimportLoggerfrompycdiimportInject,Singleton,Producerfrompycdi.shortcutsimportcall@Producer(str,_context='app_name')defget_app_name():return'PyCDI'@Singleton(produce_type=Logger)@Inject(app_name=str,_context='app_name')defget_logger(app_name):returnlogging.getLogger(app_name)@Inject(name=(str,'app_name'),logger=Logger)defmain(name,logger):logger.info('I\'m starting...')print('Hello World!!!\nI\'m a example of %s'%name)logger.debug('I\'m finishing...')call(main)

Python3

使用python 3可以用类型提示定义注入的类型。

您可以在examples文件夹(examples/py3/)中看到更多示例。

importloggingfromloggingimportLoggerfrompycdiimportInject,Singleton,Producerfrompycdi.shortcutsimportcall@Producer(_context='app_name')defget_app_name()->str:return'PyCDI'@Singleton()@Inject(logger_name='app_name')defget_logger(logger_name:str)->Logger:returnlogging.getLogger(logger_name)@Inject(name='app_name')defmain(name:str,logger:Logger):logger.info('I\'m starting...')print('Hello World!!!\nI\'m a example of %s'%name)logger.debug('I\'m finishing...')call(main)

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

推荐PyPI第三方库


热门话题
java是从此类字符串中提取数据的最佳方法   filenotfoundexception Java FileOutputStream Windows/Linux   java在SQLite数据库Android SDK中搜索特定字符串   java使用键值访问jsp中Map<Long,Map<String,Object>>的内容   java奇怪的HTMLeditor工具包问题   在java中使用数组只计算字母   每个应用程序都可以有自己独立的Java SDK吗   java如何将jasper报告生成的PDF文件保存在一个项目文件夹中   java BigDecimal包装器:静态字段为零   解码Base64图像时出现java IllegalArgumentException(非法的Base64字符)   将int转换为字节在Java和Actionscript中产生不同的结果   java什么使不可变对象在没有安全发布技术的情况下发布?   java将字节数据写入目录   一个计算器中有多个操作的java问题   面向对象Java重写是如何工作的   带hibernate的java ClassCastException   指向最后一个对象的java对象列表   java单元测试spring项目中的Get请求