【问题标题】:How to type hint parameter of type <class 'module'> [duplicate]如何键入 <class 'module'> 类型的提示参数 [重复]
【发布时间】:2020-06-03 05:44:44
【问题描述】:

我有一个函数,它接收一个包并返回其中继承自 foo 的类列表(以及子包)。

def list_foo_classes_from_package(package) -> List[foo]:
    ...
    code to find attribute that is issubclass(attribute, foo) 
    ...
    return list_of_foo_classes

import boo
class_list = list_classes(boo)

我想输入提示输入包。但是 module 不是关键字。我发现最接近的是 types.ModuleType,即

def list_classes_from_package(self, package: types.ModuleType) -> List[foo]:

但是我收到警告:

expected type ModuleType, got "__init__.py" instead

如何输入提示包作为函数的参数?

【问题讨论】:

  • 向我们展示实际产生警告的代码。另外,这个警告来自哪里?我的? IDE?
  • types.ModuleType 是模块的正确类型。问题出在其他地方。
  • @user2357112supportsMonica,pycharm 警告。

标签: python types module


【解决方案1】:

原来types.ModuleType 是正确的。这是 Pycharm 的一个问题(感谢 @user2357112 支持 Monica)。在谷歌上搜索“Pycharm 模块类型提示”时,我找到了这个answer

【讨论】:

    猜你喜欢
    • 2016-01-27
    • 2020-09-09
    • 2017-01-03
    • 2019-07-08
    • 2019-09-01
    • 2015-03-05
    • 2021-08-03
    • 2021-01-11
    • 2015-06-27
    相关资源
    最近更新 更多