Jak „wpisać” losowy zwrot przesyłki [duplikat]
Nov 24 2020
Buduję API, aby umożliwić wtyczki w aplikacji, nad którą pracuję. Używam importlib.import_module
do importowania wtyczek. Oczywiście nie mam pojęcia, jakie moduły zostaną zaimportowane z wyprzedzeniem. Czy istnieje sposób identyfikacji zwracanego typu jako modułu ogólnego w metodzie, której używam do importowania?
def import_plugin(plugin_name: str) -> <Some generic module type>:
# conditional tests here...
return importlib.import_module("plugins.{}".format(plugin_name))
Odpowiedzi
1 khelwood Nov 24 2020 at 19:52
Typ modułu jest podany types.ModuleType
w types
module.
import types
type(types) is types.ModuleType
# => True
ericl16384 Nov 24 2020 at 19:45
Python używa pisania typu kaczego , więc polecam założyć, że jest to moduł i jeśli nie jest to możliwe, pozwól użytkownikowi się nim zająć. Jeśli naprawdę chcesz uzyskać ten typ, użyj types.ModuleType
tak , jak powiedział khelwood.