No project description provided
Project description
A small library to provide multi-methods. All functions are in the dialogue.multi_method package.
To create a multi-method, create a dispatch function, that takes the arguments and returns a hashable value, that is used to dispatch on. Use the @multi function annotation to annotate the function.
For each value of the dispatch function that you want to be handled differently, create a method with that dispatch value.
You can define a method with no dispatch value, that becomes the default method if no other method is defined for a dispatch value.
An example:
@multi def number(x): return x @method(number, 1) def number_one(x): return 'one' @method(number) def number_other(x): return "not one, but "+ str(c) assert number(1) == 'one' assert number(0) == 'not one, but 0'
The dispatch function is available, e.g. for testing:
assert dispatch_fn(number)('x') == 'x'
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for dialogue.multi-method-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbb0740227423cc6cfec71bb70a8cf43a23e94addf4f4c6861f5059167c83d6d |
|
MD5 | 9ea0c78c34015fb8074cd1a59c5931d9 |
|
BLAKE2b-256 | 078096fffacf213c0a8e01259988576ed8a8d54b8e92242a8307af6378dbd623 |