Cómo "escribir" devolución de paquete aleatoria [duplicado]

Nov 24 2020

Estoy creando una API para permitir complementos en una aplicación en la que estoy trabajando. Estoy usando importlib.import_modulepara importar los complementos. Claramente, no tengo idea de qué módulos se van a importar antes de tiempo. ¿Hay alguna forma de identificar el tipo de retorno como un módulo genérico en el método que estoy usando para hacer las importaciones?

def import_plugin(plugin_name: str) -> <Some generic module type>:
    # conditional tests here...
    return importlib.import_module("plugins.{}".format(plugin_name))

Respuestas

1 khelwood Nov 24 2020 at 19:52

El tipo de módulo viene dado por types.ModuleTypeen el typesmódulo.

import types
type(types) is types.ModuleType
# => True
ericl16384 Nov 24 2020 at 19:45

Python usa la escritura pato , por lo que recomiendo asumir que es un módulo, y si no es así, deje que el usuario lo maneje. Si realmente desea obtener el tipo, utilícelo types.ModuleTypecomo dijo khelwood.