towhee.hparam.hyperparameter.DynamicDispatch

class towhee.hparam.hyperparameter.DynamicDispatch(func: Callable, name=None, index=None)[source]

Bases: object

Dynamic call dispatch

Examples:

>>> @dynamic_dispatch
... def debug_print(*args, **kws):
...     hp = param_scope()
...     name = hp._name
...     index = hp._index
...     return (name, index, args, kws)
>>> debug_print()
(None, None, (), {})
>>> debug_print.a()
('a', None, (), {})
>>> debug_print.a.b.c()
('a.b.c', None, (), {})
>>> debug_print[1]()
(None, 1, (), {})
>>> debug_print[1,2]()
(None, (1, 2), (), {})
>>> debug_print(1,2, a=1,b=2)
(None, None, (1, 2), {'a': 1, 'b': 2})
>>> debug_print.a.b.c[1,2](1, 2, a=1, b=2)
('a.b.c', (1, 2), (1, 2), {'a': 1, 'b': 2})

Methods

__call__(*args, **kws) Any[source]

Call self as a function.

__init__(func: Callable, name=None, index=None)[source]