Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查手动装饰的功能?_Python_Python 3.x_Pycharm_Static Analysis_Python Decorators - Fatal编程技术网

Python 如何检查手动装饰的功能?

Python 如何检查手动装饰的功能?,python,python-3.x,pycharm,static-analysis,python-decorators,Python,Python 3.x,Pycharm,Static Analysis,Python Decorators,我有一个客户端对象client。它有许多同步函数,我有一个装饰器,可以将它们更改为异步函数。由于我无法修改原始代码,所以我使用类似于client.send\u request=async\u wrapper(client.send\u request)的代码手动修饰所有这些函数 但问题是,手动修饰的函数显示包装器的签名,但不显示修饰函数的签名。例如,如果我键入client.send\u request,我的IDE将签名作为send\u request(*args,**kwargs),而不是原始签

我有一个客户端对象
client
。它有许多同步函数,我有一个装饰器,可以将它们更改为异步函数。由于我无法修改原始代码,所以我使用类似于
client.send\u request=async\u wrapper(client.send\u request)
的代码手动修饰所有这些函数

但问题是,手动修饰的函数显示包装器的签名,但不显示修饰函数的签名。例如,如果我键入
client.send\u request
,我的IDE将签名作为
send\u request(*args,**kwargs)
,而不是原始签名作为
send\u request(url,数据,额外)

因此,这给我的发展带来了很多困难。有办法让它工作吗


我使用的是Pycharm,但任何其他IDE都可以接受。

您是否使用了
functools.wrapps
?@NilsWerner当然。是否要检查参数?@warvariuc编辑。