# 使用类/闭包创建依赖注入项
由于设计简单的原因, 我们支持所有的 Callable
作为依赖注入项,
这意味着你可以使用一些魔法来使依赖注入更加强大
# 类(class)
你可以通过定义魔法方法 __call__
来使一个类变得可以调用,
并且能用于依赖注入, 这种方式多用于一些定制化的需求.
class DependAsClass:
def __init__(self, msg):
self.msg = msg
async def __call__(self):
print(self.msg)
...
@session.receiver("FriendMessage", dependencies=[Depend(DependAsClass("it works."))])
async def fm(session: Session):
...
...
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 闭包形式(closure)
如果你不喜欢使用类的形式, 可以使用闭包形式:
def DependAsClosure(msg):
async def warpper():
print(msg)
return warpper()
1
2
3
4
2
3
4
← 在注册事件时声明依赖注入 协处理器 →