There is no need to use pn.Param to turn the only parameter you have into a widget (pn.Param basically creates widgets out of the parameters of a param.Parameterized class and a container to host them).
You can just create the widget manually
def view(self):
w_df = pn.widgets.Tabulator.from_param(self.param.options)
w_df.on_click(self.table_click)
return w_df
I’m not sure though if having our various options in a DF is the right thing (usually you’d go with a param.Selector()). But it may make sense if your use case is to display all possible options (incl. the parameters) in a a concise tightly packed list.
There are different ways, the post below has a nice summary and some discussion: