In reply to zz8318:
A function cannot morph itself based on different argument types. This cannot work like python where you can pass **kwargs and parse them.
Use different functions like Dave says or pass the superset of arguments to the function in the base class and use default assignment. Then use case statements to do different things.