pytilities.overloading.decorators

Package pytilities :: Package overloading :: Module decorators |
[hide private]
[frames] | no frames]

# Module decorators

source code

Functions | [hide private]
overloaded(overloads, is_method=True) Overloads an operation. | source code

Variables | [hide private]
| __package__ = ``'``pytilities.overloading``'``

Function Details | [hide private]

### overloaded(overloads, is_method=True) | source code
Overloads an operation. The decorated operation is replaced entirely, its docstring is copied to the replacement operation. Parameters: `overloads` :: (Overload...) a collection of rules indicating which operation to call for which combination of arguments. At least one overload must be given. `is_method` :: bool If True, the decorated is considered to be a method and a self parameter is added to each overload automatically (don't add self parameters manually). If False, the decorated is treated as a function. Usage example:
    def __init_xy(self, x, y):
        self.__storage = Storage(x, y)

    def __init_storage(self, storage):
        self.__storage = storage

    @overloaded((
        Overload(__init_xy,
            Param("x", default=0),
            Param("y", default=0)),
        Overload(__init_storage,
            Param("storage"))))
    def __init__(self):
        "docstring"
        pass