Python3.6怎么添加类型注释的验证
这篇文章主要介绍了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__
从Python3.6.3开始可用。在较早的版本中可能不会,因为打字仍然是临时的。
关于“Python3.6怎么添加类型注释的验证”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python3.6怎么添加类型注释的验证”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。