python - 装饰器分配
问题描述
假设装饰器
@app.callback(
Output("plot_1", "figure"),
[Input("checklist", "value"),
Input("radio", "value")])
这在代码中重复了几次。副本之间的唯一区别是不同的情节名称。
如何将该装饰器分配给另一个装饰器并使用后者?
@new_callback("plot_1")
解决方案
装饰器语法只是函数应用的捷径;app.callback
只是一个功能。创建一个使用固定参数调用它的新函数。
def new_callback(plot):
return app.callback(
Output(plot, "figure"),
[
Input("checklist", "value"),
Input("radio", "value")
]
)
app.callback
它本身实际上并不是装饰器;它是一个返回装饰器的函数(即,将要装饰的函数作为参数的函数)。
@app.callback(...)
def foo():
...
相当于
def foo():
...
foo = app.callback(...)(foo)
推荐阅读
- python - 突然无法在 Google Colab 中更改 Python 版本的运行时
- java - 如何使用 redisson 客户端获取缓存值
- ruby-on-rails - 使用inf Rspec测试控制器时出现UrlGenerationError
- docker - Traefik - 角度应用程序的后端代理
- grails - 如何使用 .gsp 文件在 grails 应用程序中以可编辑模式隐藏字段?
- javascript - 在 mongoose 中创建带有 { strict: false } 的文档
- reactjs - jsencrypt 使用公钥加密的替代方案
- javascript - 如何从 wikipedia api 获取表格数据作为行和列?
- php - Data type differences between PHP sqlsrv driver and PDO driver
- javascript - Threejs如何为大型物体设置相机