6赞
875
当前位置:  开发笔记 > 编程语言 > 正文

Python中的通用函数输入

如何解决《Python中的通用函数输入》经验,为你挑选了1个好方法。

我在Eclipse 4.8和Pydev下的Linux Ubuntu 18.04上的Python 3.7下运行。

声明:

args:Dict[str: Optional[Any]] = {}

从我的测试代码导入的模块中。并使用来自type.py的以下错误消息进行标记:

TypeError: Parameters to generic types must be types. Got slice(, typing.Union[typing.Any, NoneType], None). The stack trace follows: Finding files... done. Importing test modules ... Traceback (most recent call last):   File "/Data/WiseOldBird/Eclipse/pool/plugins/org.python.pydev.core_7.0.3.201811082356/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)   File "/Data/WiseOldBird/Workspaces/WikimediaAccess/WikimediaLoader/Tests/wiseoldbird/loaders/TestWikimediaLoader.py", line 10, in 
    from wiseoldbird.application_controller import main   File "/Data/WiseOldBird/Workspaces/WikimediaAccess/WikimediaLoader/src/wiseoldbird/application_controller.py", line 36, in 
    args:Dict[str: Optional[Any]] = {}   File "/usr/local/lib/python3.7/typing.py", line 251, in inner
    return func(*args, **kwds)   File "/usr/local/lib/python3.7/typing.py", line 626, in __getitem__
    params = tuple(_type_check(p, msg) for p in params)   File "/usr/local/lib/python3.7/typing.py", line 626, in 
    params = tuple(_type_check(p, msg) for p in params)   File "/usr/local/lib/python3.7/typing.py", line 139, in _type_check
    raise TypeError(f"{msg} Got {arg!r:.100}.") TypeError: Parameters 

这样可以防止导入我的测试模块。我究竟做错了什么?



1> Norrius..:

字典类型的正确语法是

Dict[str, Optional[Any]]

在编写时[a: b],Python将其解释为一个切片,即使部分数组起作用的事物,例如a[1:10]。您可以在错误消息中看到此内容:Got slice(, typing.Union[typing.Any, NoneType], None)

推荐阅读
devbox
星罗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4