如下例子:
foo() 方法没有使用装饰器进行参数校验,这个时候 IDE 的参数智能提示会告诉我参数是 param1, param2
bar() 方法使用了装饰器就行参数校验,这个时候 IDE 的参数智能提示变成了被装饰后的方法 validate,IDE 告诉我参数是 *args, **kwargs
请问有什么办法可以让使用了装饰器之后 IDE 还是按照原方法的参数进行提示呢?
from functools import wraps def validate_params(func): """ 入参格式校验 """ @wraps(func) df validate(*args, **kwargs): invalid_params = [key for key, value in kwargs.items() if value is None] if invalid_params: print('%s 参数非法' % str.join(',', invalid_params)) return func(*args, **kwargs) return validate def foo(param1, param2): # 有什么办法可以让使用了装饰器之后 IDE 的参数提示是「 param1, param2 」 pass @validate_params def bar(param1, param2): pass if __name__ == '__main__': foo(param1='IDE 智能提示:「 param1, param2 」', param2='没有使用装饰器进行参数校验') bar(param1='IDE 智能提示:「*args, **kwargs 」', param2=None) 