首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

静态类型检查器 Mypy 0.620 发布,支持 Data Classes

Mypy 0.620 已发布,包含一些新特性和 bug 修复。Mypy 是 Python 的可选静态类型检查器,旨在结合动态类型和静态类型的优点。新版本可按如下方式安装:

代码语言:javascript
复制
?python3?-m?pip?install?-U?mypy

?亮点包括:

支持?Python 3.7 的?data classes

代码语言:javascript
复制
????from?dataclasses?import?dataclass????from?typing?import?List????
????@dataclass
????class?FitResult:
????????optimum:?List[float]
????????chi:?float
????????method:?str?=?"TRF"
????
????FitResult([0.1,?0.2],?1.2)??#?OK
????FitResult([0.1,?0.2],?1.2,?"LM")??#?Also?OK
????FitResult(1,?2)??#?Error!

泛型类型过载和其他过载改进

代码语言:javascript
复制
????from?typing?import?List,?Union,?overload????
????@overload
????def?summarize(data:?List[int])?->?float:?...????@overload
????def?summarize(data:?List[str])?->?str:?...????def?summarize(data):
????????#?Implementation?goes?here
????????...
????
????gen_data:?Union[List[int],?List[str]]
????res?=?summarize(gen_data)??#?OK,?inferred?type?is?Union[float,?str]
????
????bad_data:?int
????summarize(bad_data)????#?error:?No?overload?variant?of?"summarize"?matches?argument?type?"int"
????#?note:?Possible?overload?variants:
????#?note:?????def?summarize(data:?List[int])?->?float
????#?note:?????def?summarize(data:?List[str])?->?str

Incomplete and partial packages

代码语言:javascript
复制
????#?pack/__init__.pyi
????from?typing?import?Any????def?__getattr__(arrr:?str)?->?Any:?...????
????#?pack/subpack/__init__.pyi
????#?empty
????
????#?pack/subpack/mod.pyi
????class?Test:?...????
????#?main.py
????from?pack?import?other??#?OK,?pack?is?incomplete
????other.func(1,?2)??#?OK,?all?types?in?incomplete?packages?are?Any
????
????from?pack.subpack?import?mod??#?OK
????from?pack.subpack?import?another??#?Error:?missing?library?stub?file

完整更新内容请查阅:

  • 发表于:
  • 原文链接https://www.oschina.net/news/98035/mypy-0-620-released
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com