> [!META]- Inline Metadata
> [status:: boat]
> [source:: [[LLM Knowledge Management Agent]]]
> [tags:: #note/evergreen #state/boat #concepts/programming/python ]
> [up:: [[Python MOC]]]
Dispatch tables are a useful way to use a string to determine which function to call. Why would you do this? When designing an interface to be used in other people's code, you can make a single routing function or method public to users, and then use a parameter to determine which "worker" function to pass in.
A really basic no-guardrails example could look like this:
```python
DISPATCH_TABLE = {
"one": _private_fxn_one,
"two": _private_fxn_two
}
def public_function(which_function: str):
result = DISPATCH_TABLE[which_function]()
return result
def _private_fxn_one():
return "one"
def _private_fxn_two():
return "two"
```
## Caveats
- Don't put parentheses on the function in the dispatch table because the function will be called then. This applies generally when using a function as an object,
- If the private functions have different parameters, you can use kwargs to pass in a standard set of arguments and ignore the unused ones, or generate the parameters based on an argument to the public function.
## Sources
[[LLM Knowledge Management Agent]]