在一些源代码中会碰到类似下面的代码,比较复杂,看了一头雾水
def chain_transform(units: typing.List[Unit]) -> typing.Callable:
@functools.wraps(chain_transform)
def wrapper(arg):
"""Wrapper function of transformations composition."""
for unit in units:
arg = unit.transform(arg)
return arg
unit_names = ' => '.join(unit.__class__.__name__ for unit in units)
wrapper.__name__ += ' of ' + unit_names
return wrapper
其中,@functools.wraps以及装饰器可参考python 装饰器与 @functools.wraps()函数的作用。
对于->在c、c++中表示指针,在Python中通常应用于函数的后面,表示函数的返回类型,方便开发人员的开发,上面的这个例子中,返回类型比较复杂,我们可以改写一下,如下例子就容易理解了
def plug(num1: int,n