当前位置: 首页 > 面试题库 >

如何通过python 3.5键入模块键入提示collections.OrderedDict

桑鸿志
2023-03-14
问题内容

我想使用OrderedDict,其中键是枚举,而项目是特定类。

如何使用打字模块提示这一点?这个提示的namedtuple类似什么:

Move = typing.NamedTuple('Move', [('actor', Actor), ('location', Location)])

问题答案:

如AChampion的评论中所述,您可以使用MutableMapping

class Actor(Enum):
    # ...Actor enum menbers...

class Location:
    # ...Location class body...

class MapActor2Location(OrderedDict, MutableMapping[Actor, Location]):
    pass

对于像我这样以前从未使用过该typing模块的人的附录:请注意,类型定义使用 不带 括号的索引语法([T])。我最初尝试过这样的事情:

class MyMap(OrderedDict, MutableMapping([KT, VT])): pass

(请注意周围的多余括号[KT, VT]!)

这给了我一个相当混乱的错误:

TypeError: Can't instantiate abstract class MutableMapping with abstract methods __delitem__, __getitem__, __iter__, __len__, __setitem__


 类似资料:
  • 请这是一个紧急的任务我非常感谢您的建议我正在尝试制作一个在线订购系统,有人可以同时订购几个项目,为此我使用了并且有时使用来防止一些样式和js事件,为此我决定手动使用输入字段标记,在我以前的项目中我没有遇到这样的挑战,现在我困惑如何实现它!?这是我的模型。py 我在view中使用了基于函数的view,这是我的Views.py 这是我的html表单 null null 但我一直收到这个错误信息 无法分

  • 请考虑以下代码段: 上面的代码只是一种方式来证明我试图实现什么。我想用类型提示创建< code>namedtuple。 你知道怎样才能达到预期的效果吗?

  • 使用python 3,可以选择使用类型符号。 我的问题是,如果一个函数返回None,应该加上这个,还是留空。 即 哪个PEP解决了这个问题?

  • 有没有办法告诉WebStom在AngularJS(v1)组件超文本标记语言模板文件中哪个类型? 如果它是一个JavaScript文件,我可以使用JSDoc,WebStorm会使用该信息,并会正确检测未使用的方法等。 WebStorm的文档讲述了Angular插件,但该插件似乎无法与较新的AngularJS组件一起工作,只能与较旧的< code>ng-controller样式一起工作。

  • 我试图从不同的目录级别导入模块,因此我使用: 但现在我得到了这个错误。我正在使用Spyder,第一次使用以下导入时,它运行良好。 从第二次我得到这个错误。 文件“ipython-input-29-f35dfe634c32”,第1行,在模块运行文件中('C:/Users/nrshakya/Documents/CI/src/Comp\u IntelPython/CI\u search\u projec

  • 问题内容: 我有两张地图: 我想通过Integer值将此映射组合为一个,因此结果映射为 有什么方法比遍历条目集更容易做到这一点? 问题答案: 假设两个映射的键匹配并且映射具有相同数量的条目,那么使用Java 8可以用以下代码一行编写它: 因此,您从第一个地图开始并创建一个新地图,其中键是mapOne的值,而值是mapTwo中的对应值。 从技术上讲,这在某种程度上等同于迭代第一个映射的条目集。 注意

  • 我知道Eclipse允许我这样做。然而,在PyCharm中,我必须在每个缺失的模块上使用Alt来导入它。 有没有键盘快捷键可以让我一次导入所有缺失的模块?稍后,我可以纠正任何不正确的导入。

  • 问题内容: 当用户在inputAccessoryView中点击“附加”按钮时,我想通过键盘创建一个简单的视图。像这样: 有简单的方法吗?或者我应该创建我的自定义键盘? 问题答案: 您可以将该新子视图添加到您的应用程序窗口。