我真的很喜欢函数注释,因为它们使我的代码更加清晰。 但我有一个问题:你如何注释一个以另一个函数为参数的函数?还是返回一个?你知道吗
def x(f: 'function') -> 'function':
def wrapper(*args, **kwargs):
print("{}({}) has been called".format(f.__name__, ", ".join([repr(i) for i in args] + ["{}={}".format(key, value) for key, value in kwargs])))
return f(*args, **kwargs)
return wrapper
我不想在注解中使用它。你知道吗
使用添加到Python 3.5中的新^{} type hinting support ;函数是可调用的,您不需要函数类型,您需要可以调用的东西:
上面指定您的
x
接受一个接受任何参数的可调用对象,其返回类型为Any
,例如,任何情况下,它都是一个通用的可调用对象。x
然后返回与泛型相同的内容。你知道吗您也可以用
x(f: Callable) -> Callable:
来表示这一点;普通的Callable
相当于Callable[..., Any]
。你选哪一个是风格选择,我在这里使用了显式选项作为我的个人偏好。你知道吗相关问题 更多 >
编程相关推荐