【发布时间】:2017-08-01 23:47:58
【问题描述】:
假设我有一个组件对象,例如路线。
class Route:
def __init__(self, url='localhost', port=80)
...
我想提供一个路由管理器类,类似于 Flask 对@app.route 所做的,所以我可以创建和跟踪路由:
class Router:
def route(self, *args, **kwargs):
route = Route(*args, **kwargs)
self.routes.append(route)
是否有一种简单的方法可以使 Router.route 方法具有自动反映 Route.__init__ 的参数完成和/或文档?
我尝试使用functools.wraps,但没有立即生效。是不是我用错了?
class Router:
@wraps(Route.__init__)
def route(self, *args, **kwargs):
route = Route(*args, **kwargs)
self.routes.append(route)
编辑:我正在使用带有最新 PyCharm (2016.3.2) 的 Python 3.6。
【问题讨论】:
-
您希望在什么 IDE 中完成您的工作?你使用的是什么 Python 版本?旧 API 直接查看代码对象;没有办法欺骗他们。较新的代码使用高级协议。
-
我希望有一个万能的解决方案,但我用我的设置更新了这个问题。有具体解决方案总比没有解决方案好。
标签: python pycharm python-decorators