这篇文章主要介绍了Python3.6怎么添加类型注释的验证的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python3.6怎么添加类型注释的验证文章都会有所收获,下面我们一起来看看吧。
我有一个使用__annotations__
字典的方法来检查类的所有属性是否有正确的值。它对于基本类型(如int
、str
或bool
)非常适用,但对于更复杂的元素(如typing
)则不适用。工会或打字。可选(也是一个联盟)。
失败是由Union对象中的isinstance()方法引起的,该方法抛出TypeError。我甚至找不到一种方法来确保注释是一个Union
,因此我无法验证一个值是否符合某个类型。
解决方法:
这个想法,正如GvR对这个问题的评论中提到的,是实现你自己的issubclass/isinstance
版本,使用一些附加到类型的额外元数据:
>>> Union[int, str].__args__
(int, str)
>>> Union[int, str].__origin__
typing.Union
__args__
和__origin__
从Python 3.6.3开始可用。在较早的版本中可能不会,因为打字仍然是临时的。
关于“Python3.6怎么添加类型注释的验证”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python3.6怎么添加类型注释的验证”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。