python需要依赖注入吗_python – 对模块的依赖注入

考虑一个模块,例如some_module,各种模块在同一个解释器进程中使用.该模块将具有单个上下文.为了使some_module方法起作用,它必须接收类实例的依赖注入.

将依赖注入模块的pythonic和优雅方法是什么?

解决方法:

IMHo意见完全成熟的依赖注入与所有术语更适合静态类型的语言,如Java,在python你可以非常容易地完成,例如这里是裸骨注射

class DefaultLogger(object):

def log(self, line):

print line

_features = {

'logger': DefaultLogger

}

def set_feature(name, feature):

_features[name] = feature

def get_feature(name):

return _features[name]()

class Whatever(object):

def dosomething(self):

feature = get_feature('logger')

for i in range(5):

feature.log("task %s"%i)

if __name__ == "__main__":

class MyLogger(object):

def log(sef, line):

print "Cool",line

set_feature('logger', MyLogger)

Whatever().dosomething()

输出:

Cool task 0

Cool task 1

Cool task 2

Cool task 3

Cool task 4

如果您认为缺少某些东西,我们可以轻松添加它的python.

标签:python,dependency-injection,python-module

来源: https://codeday.me/bug/20190626/1295420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值