Como “digitar” retorno de pacote aleatório [duplicado]

Nov 24 2020

Estou construindo uma API para permitir plug-ins em um aplicativo no qual estou trabalhando. Estou usando importlib.import_modulepara importar os plug-ins. Obviamente, não tenho ideia de quais módulos serão importados com antecedência. Existe uma maneira de identificar o tipo de retorno como um módulo genérico no método que estou usando para fazer as importações?

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

Respostas

1 khelwood Nov 24 2020 at 19:52

O tipo de módulo é fornecido por types.ModuleTypeno typesmódulo.

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

Python usa digitação duck , então eu recomendo assumir que é um módulo e, se não for, deixe o usuário lidar com isso. Se você realmente deseja obter o tipo, use types.ModuleTypecomo disse khelwood.