def inject(*args):
if len(args) == 1 and inspect.isfunction(args[0]):
return inject_function(args[0])
else:
def inject_class(cls):
orig_init = cls.__init__
def __init__(self, *a, **kw):
container = Container()
for arg in args:
obj = container.get_object(arg)
setattr(self, arg, obj)
orig_init(self, *a, **kw)
cls.__init__ = __init__
return cls
return inject_class
评论列表
文章目录