Forgive me if this question has been asked before but I could not find any related answer.
Consider a function that takes a numerical type as input parameter:
def foo(a):
return ((a+1)*2)**4;
This works with integers, floats and complex numbers.
Is there a basic type so that I can do a type hinting (of a real existing type/base class), such as:
def foo(a: numeric):
return ((a+1)*2)**4;
Furthermore I need to use this in a collection type parameter, such as:
from typing import Collection;
def foo(_in: Collection[numeric]):
return ((_in[0]+_in[1])*2)**4;
There isn't a generic numeric type in the typing module, so you would have to create such a type with Union instead:
from typing import Union
numeric = Union[int, float, complex]
...
To add support for Numpy's collection of numeric types, add np.number to that Union.
numeric = Union[int, float, complex, np.number]