热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python类型提示作为字符串给出?

如何解决《Python类型提示作为字符串给出?》经验,为你挑选了1个好方法。

我有这种形式的功能:

def foo(o: "hello") -> dict:
    # pass

我知道" - > dict"意味着foo返回一个字典.我不明白的是"你好"的一部分.为什么这个类型的提示是以字符串形式给出的?什么是"你好"?

可能相关 - 这是一个自动生成的文件.



1> FHTMitchell..:

有时需要在创建对象之前设置类型注释,例如:

class Node:
    def next() -> Node:
        pass

这段代码实际上失败了,因为在类仍在创建时Node被引用为注释.这与以下失败的原因相同:Node.nextNode

class T:
    t = T()

要解决这个问题,您可以使用字符串代替

class Node:
    def next() -> 'Node':
        pass

所以typechecker只会Node稍后评估(前向引用).


这实际上决定是一个设计缺陷所以在python 3.7中你可以使用from __future__ import annotations,第一个例子将起作用.


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