# Dependencies on nested parameters when using \`param.watch()\` instead of \`@param.depends()\`

**URL:** <https://discourse.holoviz.org/t/dependencies-on-nested-parameters-when-using-param-watch-instead-of-param-depends/8528>\
**Category:** Param\
**Created:** [January 24, 2025, 10:00am UTC](https://discourse.holoviz.org/t/dependencies-on-nested-parameters-when-using-param-watch-instead-of-param-depends/8528 "2025-01-24T10:00:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bertcoerver](https://discourse.holoviz.org/user_avatar/discourse.holoviz.org/bertcoerver/32/6232_2.png) [@bertcoerver](https://discourse.holoviz.org/u/bertcoerver)\
**Post date:** [January 24, 2025, 10:00am UTC](https://discourse.holoviz.org/t/dependencies-on-nested-parameters-when-using-param-watch-instead-of-param-depends/8528/1 "2025-01-24T10:00:56Z")

</div>

Hi,

When I decorate a method in a Parameterized class with `@param.depends` I can watch nested parameters (as described [here](https://param.holoviz.org/user_guide/Dependencies_and_Watchers.html#dependency-specs)), e.g. `@param.depends("something.sub", watch=True)`.

How can I do the same using `param.watch()`? Because `param.watch(my_func, ["something.sub"])` doesn’t work.

Thanks,  
Bert

---

<div class="post-metadata">

**Author:** ![bertcoerver](https://discourse.holoviz.org/user_avatar/discourse.holoviz.org/bertcoerver/32/6232_2.png) [@bertcoerver](https://discourse.holoviz.org/u/bertcoerver)\
**Post date:** [January 24, 2025, 2:39pm UTC](https://discourse.holoviz.org/t/dependencies-on-nested-parameters-when-using-param-watch-instead-of-param-depends/8528/2 "2025-01-24T14:39:11Z")

</div>

Figured it out myself:

```python
import param

class Something(param.Parameterized):

    n = param.Number(default = 2)

    def __init__ (self, **params):
        super(). __init__ (**params)

class App(param.Parameterized):

    x = param.ClassSelector(class_ = Something)

    def __init__ (self, **params):
        super(). __init__ (**params)
        self.x = Something()
        self.x.param.watch(self.test, ["n"])

    # @param.depends("x.n", watch=True)
    def test(self, event):
        print(f"n {event.type} from {event.old} to {event.new}")

app = App()

app.x.n = 5

```

```auto
>>> n changed from 2 to 5

```
