param.Parameterized#
- class param.Parameterized(*, name)[source]#
A base class for creating Parameterized objects.
The
Parameterizedbase class enables two main use cases:Defining rich and run-time validated class and instance attributes, called
Parameter.Watching
Parameterfor changes and reacting through callbacks.
This makes it well-suited for robust, maintainable code bases and particularly useful in interactive applications requiring reactive behavior.
- param#
.paramnamespace.- Type:
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
Parametervalues are set unless overridden:>>> obj.my_number 2 >>> obj.my_list [1, 2, 3]
Parametervalues 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_numberexecutes the callback method:>>> obj.my_number = 7 my_number new value: 7
Parameter Definitions
- __init__(**params)[source]#
Initialize a
Parameterizedinstance 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
nameparameter is provided, the instance’snameattribute will default to an identifier string composed of the class name followed by an incremental 5-digit number.- Parameters:
**params – Optional keyword arguments mapping
Parameternames to values.- Raises:
TypeError – If one of the keywords of
paramsis not aParametername.
Examples
>>> import param >>> class MyClass(param.Parameterized): ... value = param.Number(default=10, bounds=(0, 20)) >>> obj = MyClass(value=15)
The
valueparameter is set to 15 for this instance, overriding the default.
Methods
__init__(**params)Initialize a
Parameterizedinstance with optional Parameter values.Attributes