Perdóneme si esta pregunta se ha hecho antes, pero no pude encontrar ninguna respuesta relacionada.
Considere una función que toma un tipo numérico como parámetro de entrada:
def foo(a): return ((a+1)*2)**4;Esto funciona con números enteros, flotantes y complejos.
¿Hay un tipo básico para que pueda hacer una sugerencia de tipo (de un tipo/clase base existente real), como:
def foo(a: numeric): return ((a+1)*2)**4;Además, necesito usar esto en un parámetro de tipo de colección, como:
from typing import Collection; def foo(_in: Collection[numeric]): return ((_in[0]+_in[1])*2)**4;No hay un tipo numérico genérico en el módulo de typing , por lo que tendría que crear dicho tipo con Union en su lugar:
from typing import Union numeric = Union[int, float, complex] ... Para agregar soporte para la colección de tipos numéricos de Numpy, agregue np.number a esa Unión.
numeric = Union[int, float, complex, np.number]