Wie man eine zufällige Paketrückgabe "eingibt" [duplizieren]

Nov 24 2020

Ich erstelle eine API, um Plugins in einer Anwendung zuzulassen, an der ich arbeite. Ich verwende importlib.import_module, um die Plugins zu importieren. Ich habe natürlich keine Ahnung, welche Module vorab importiert werden sollen. Gibt es eine Möglichkeit, den Rückgabetyp als generisches Modul für die Methode zu identifizieren, mit der ich die Importe durchführe?

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

Antworten

1 khelwood Nov 24 2020 at 19:52

Der Typ eines Moduls wird types.ModuleTypeim typesModul angegeben.

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

Python verwendet die Enten-Typisierung , daher empfehle ich, anzunehmen, dass es sich um ein Modul handelt, und wenn dies nicht der Fall ist, lassen Sie den Benutzer damit umgehen. Wenn Sie wirklich den Typ erhalten möchten, verwenden Sie, types.ModuleTypewie khelwood sagte.