param.Action Example#

import param
import panel as pn

pn.extension(template='bootstrap')

This example demonstrates how to use param.Action to trigger an update in a method that depends on that parameter. Actions can trigger any function, but if we simply want to trigger a method that depends on that action, then we can define a small lambda function that triggers the parameter explicitly:

class ActionExample(param.Parameterized):
    """
    Demonstrates how to use param.Action to trigger an update.
    """

    action = param.Action(default=lambda x: x.param.trigger('action'), label='Click here!')

    number = param.Integer(default=0)

    @param.depends('action')
    def get_number(self):
        self.number += 1
        return f'Number: {self.number}'

action_example = ActionExample()

pn.Row(
    pn.Column(
        pn.panel(action_example, show_name=False, margin=0, widgets={"action": {"button_type": "primary"}, "number": {"disabled": True}}),
        '**Click the button** to trigger an update in the output.'
    ),
    action_example.get_number,
).servable()