关于Mercury框架[Run]按钮运行逻辑及延迟执行代码的咨询
Mercury框架Run按钮与代码执行时机问题
关于Run按钮的理解
你的理解完全正确:Mercury中的[Run]按钮核心作用就是触发用户交互后的代码重新执行。框架默认逻辑是在仪表板首次加载时,先自动运行所有非部件代码单元格(也就是没有被Mercury部件装饰器标记的代码),完成初始渲染;而点击Run按钮后,会根据当前用户设置的部件参数,重新执行指定的代码逻辑。
延迟代码执行的实现方法
是的,需要通过if/then代码块配合Mercury的API来实现,让目标单元格仅在用户点击Run按钮后才执行。具体步骤如下:
- 确保已导入Mercury库:
import mercury as mr - 在需要延迟执行的代码单元格最顶部添加判断逻辑:
if mr.run(): # 这里编写你希望点击Run后才执行的代码 # 例如数据查询、计算、可视化渲染等逻辑
- 原理说明:
mr.run()函数会返回布尔值,仅当用户点击Run按钮(或触发了自动运行条件,比如部件设置了run_on_change=True)时返回True,此时代码块内的逻辑才会执行;仪表板初始加载时,该判断会跳过内部代码,避免提前运行。
额外提示:如果希望部件参数变化时自动触发代码执行,无需手动点击Run,可以在定义部件时添加run_on_change=True参数,例如:
mr.Slider(label="选择数值", min=1, max=100, value=50, run_on_change=True)
内容的提问来源于stack exchange,提问作者BA88
相关产品推荐
相关产品推荐

