2024-05-17 19:03:20 发布
网友
我在查看aiortc示例时,注意到一个装饰器上有一个方法:
@pc.on("datachannel") def on_datachannel(channel): ...
我真的不明白这是怎么工作的,或者这段代码是做什么的。我一直在搜索decorators,我知道有类decorator是可能的,但没有关于使用方法的。有人能详细说明一下吗
@foo def bar(): ...
此语法仅适用于以下情况:
def bar(): ... bar = foo(bar)
那么这个,
@pc.on('datachannel') def on_datachannel(channel): ...
同:
def on_datachannel(channel): ... on_datachannel = pc.on('datachannel')(on_datachannel)
pc是某个对象,pc.on是它上面的一个方法,pc.on('datachannel')调用它并返回一个函数,pc.on('datachannel')(on_datachannel)调用返回的函数,该函数将on_datachannel函数传递给它
pc
pc.on
pc.on('datachannel')
pc.on('datachannel')(on_datachannel)
on_datachannel
pc.on的实现如下:
class PC: def on(self, event): ... def wrapper(fn): ... def inner_wrapper(*args, **kwargs): ... fn(*args, **kwargs) return inner_wrapper return wrapper pc = PC()
所有的内在部分都是一个接受论点的常规装饰者。它是在类上定义的,这对它没有影响
此语法仅适用于以下情况:
那么这个,
同:
pc
是某个对象,pc.on
是它上面的一个方法,pc.on('datachannel')
调用它并返回一个函数,pc.on('datachannel')(on_datachannel)
调用返回的函数,该函数将on_datachannel
函数传递给它pc.on
的实现如下:所有的内在部分都是一个接受论点的常规装饰者。它是在类上定义的,这对它没有影响
相关问题 更多 >
编程相关推荐