【问题标题】:How to "type" random package return [duplicate]如何“键入”随机包裹退货[重复]
【发布时间】:2020-11-25 03:52:57
【问题描述】:

我正在构建一个 API 以允许在我正在开发的应用程序中使用插件。我正在使用importlib.import_module 导入插件。显然我不知道要提前导入哪些模块。有没有办法在我用来进行导入的方法上将返回类型识别为通用模块?

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

【问题讨论】:

  • 你的意思是types.ModuleType?
  • 模块没有“返回类型”——所以不清楚你的意思。
  • @martineau 大概是这个函数的返回类型,它将动态导入模块。
  • @khelwood 这正是我正在寻找的类型。这将起作用。让它成为一个答案,我会接受它。
  • 我很惊讶当我搜索时它没有更容易出现。 :(

标签: python python-3.x python-typing


【解决方案1】:

模块的类型由types 模块中的types.ModuleType 给出。

import types
type(types) is types.ModuleType
# => True

【讨论】:

    【解决方案2】:

    Python 使用duck typing,所以我建议假设它是一个模块,如果它不让用户处理它。如果您真的想获得类型,请使用types.ModuleType khelwood 说的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 2012-01-02
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      相关资源
      最近更新 更多