Comment «taper» un retour aléatoire de colis [dupliquer]
Nov 24 2020
Je construis une API pour permettre des plugins dans une application sur laquelle je travaille. J'utilise importlib.import_module
pour importer les plugins. De toute évidence, je n'ai aucune idée des modules qui seront importés à l'avance. Existe-t-il un moyen d'identifier le type de retour en tant que module générique sur la méthode que j'utilise pour effectuer les importations?
def import_plugin(plugin_name: str) -> <Some generic module type>:
# conditional tests here...
return importlib.import_module("plugins.{}".format(plugin_name))
Réponses
1 khelwood Nov 24 2020 at 19:52
Le type d'un module est donné par types.ModuleType
dans le types
module.
import types
type(types) is types.ModuleType
# => True
ericl16384 Nov 24 2020 at 19:45
Python utilise le typage canard , donc je recommande de supposer qu'il s'agit d'un module, et s'il ne l'est pas, laissez l'utilisateur le gérer. Si vous voulez vraiment obtenir le type, utilisez types.ModuleType
comme l'a dit khelwood.