param.Parameterized#

class param.Parameterized(*, name)[source]#

A base class for creating Parameterized objects.

The Parameterized base class enables two main use cases:

  • Defining rich and run-time validated class and instance attributes, called Parameter.

  • Watching Parameter for changes and reacting through callbacks.

This makes it well-suited for robust, maintainable code bases and particularly useful in interactive applications requiring reactive behavior.

name#

Class/instance name.

Type:

str

param#

.param namespace.

Type:

Parameters

References

https://param.holoviz.org/user_guide/Parameters.html.

Examples

Defining a class with two Parameter`s and a callback run on changes to ``my_number`.

>>> import param
>>> class MyClass(param.Parameterized):
...     my_number = param.Number(default=1, bounds=(0, 10), doc='A numeric value')
...     my_list = param.List(default=[1, 2, 3], item_type=int, doc='A list of integers')
...
...     @param.depends('my_number', watch=True)
...     def callback(self):
...         print(f'my_number new value: {self.my_number}')

Parameters are available as class attributes:

>>> MyClass.my_number
1
>>> obj = MyClass(my_number=2)

Constructor arguments override default values and default Parameter values are set unless overridden:

>>> obj.my_number
2
>>> obj.my_list
[1, 2, 3]

Parameter values are dynamically validated:

>>> obj.my_number = 5  # Valid update within bounds.

Attempting to set an invalid value raises an error:

>>> try:
>>>     obj.my_number = 15
>>> except Exception as e:
>>>     print(repr(e))
ValueError: Number parameter 'MyClass.my_number' must be at most 10, not 15.

Updating my_number executes the callback method:

>>> obj.my_number = 7
my_number new value: 7

Parameter Definitions


__init__(**params)[source]#

Initialize a Parameterized instance with optional Parameter values.

Optional Parameter values must be supplied as keyword arguments (param_name=value), overriding their default values for this one instance. Any parameters not explicitly set will retain their defined default values.

If no name parameter is provided, the instance’s name attribute will default to an identifier string composed of the class name followed by an incremental 5-digit number.

Parameters:

**params – Optional keyword arguments mapping Parameter names to values.

Raises:

TypeError – If one of the keywords of params is not a Parameter name.

Examples

>>> import param
>>> class MyClass(param.Parameterized):
...     value = param.Number(default=10, bounds=(0, 20))
>>> obj = MyClass(value=15)

The value parameter is set to 15 for this instance, overriding the default.

Methods

__init__(**params)

Initialize a Parameterized instance with optional Parameter values.

Attributes