holoviz/param/panel:通过 python 回调更新 Str 或 HTML 窗格

holoviz/param/panel: updating Str or HTML panes via python callback

我想知道是否可以通过 python 回调更新 panel 窗格内容。

如果我按以下方式定义 Parameterized 自定义 class:

import panel as pn
pn.extension()
import param

class Myclass(param.Parameterized):
    letter = param.ObjectSelector(
        objects=['a', 'b', 'c', 'd'],
        default='b',        
    )
    
    @param.depends('letter')
    def text(self):
        return(pn.pane.Str(self.letter))
    
instance = Myclass()

如果我在我的笔记本中输出这个实例,我得到以下信息:

pn.Row(instance.param.letter, instance.text)

产量:

但是,当我select下拉列表中的另一个条目时,右侧的文本没有更新:

我知道参数已更新,text 回调已触发(通过调试)。然而,我的笔记本没有更新。

我觉得这个例子和文档中的正弦波例子非常相似(https://panel.holoviz.org/user_guide/Param.html),但是我不明白我做错了什么...

理想情况下,答案也应该适用于 panel.pane.HTML 以及 panel.pane.Str

我在 jupyter notebook 中尝试了您的代码并且它有效:文本会在下拉列表更改时更新。

如果我在我的 jupyter 实验室中尝试它,它不起作用,但我经常遇到这种情况。我认为对我来说这是一个 jupyter 版本/安装的东西。

所以我认为你的代码是正确的。您可以尝试更新您的 jupyter notebook 或您的面板或参数包。