function can be dispatched by its arguments
Project description
arg_dispatch
function can be dispatched by its arguments
Example
from arg_dispatch import dispatch
# Functions
@dispatch
def demo(a, b):
return 'hello'
@dispatch
def demo(c):
return 'world'
demo(a=1, b=2) # return 'hello'
demo(c=3) # return 'world'
# try to call a function which has not been registed
demo(d=4) # raise `FunctionNotRegist`
# Methods
class Demo(object):
@dispatch
def demo(self, a, b):
return 'hello'
@dispatch
def demo(self, c):
return 'world'
instance = Demo()
instance.demo(a=1, b=2) # return 'hello'
instance.demo(c=3) # return 'world'
# try to call a method which has not been registed
instance.demo(d=4) # raise `FunctionNotRegist`
Notice💣
positional arguments must be required
demo(1, 2) # Boom!💣, raise `ArgumentError`
instance.demo(1, 2) # Boom!💣, raise `ArgumentError`
default value is also not supported
@dispatch
def demo(a, b=1): # Boom!💣, raise `ExistDefaultValue`
return 'hello'
class Demo(object):
@dispatch
def demo(self, a, b=1): # Boom!💣, raise `ExistDefaultValue`
return 'hello'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
arg_dispatch-0.1.3.tar.gz
(14.9 kB
view hashes)
Built Distribution
Close
Hashes for arg_dispatch-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad8125affea7ac7a118913ede1fed11d6c596d3eac7b99051040d50e0ccab7c9 |
|
MD5 | ffe1caf9c6c5103c0b099f623d29c62d |
|
BLAKE2b-256 | 03cffd6a9adf5de3da5b579b582759adedf77574bc753eab3b58ef06aad81b87 |