codecamp

Python 类型注释规范 | Google 官方 PEP-484 实践

代码类型注释

Tip

你可以根据 PEP-484 来对 python3 代码进行注释,并使用诸如 pytype 之类的类型检查工具来检查代码。

类型注释既可以写在源码里,也可以写在 pyi 中。推荐尽量写在源码里。对于第三方代码和扩展包,请使用 pyi 文件。

定义:

用在函数参数和返回值上:

def func(a: int) -> List[int]:

也可以使用 PEP-526 中的语法来声明变量类型:

a: SomeType = some_func()

优点:

可以提高代码可读性和可维护性。类型检查器可以把运行时错误变成编译错误,并阻止你使用威力过大的功能。

缺点:

必须时常更新类型声明。正确的代码也可能有误报。无法使用威力大的功能。

结论:

强烈推荐你在更新代码时启用 python 类型分析。在添加或修改公开API时,请添加类型注释,并在构建系统(build system)中启用 pytype。由于python静态分析是新功能,因此一些意外的副作用(例如类型推导错误)可能会阻碍你的项目采纳这一功能。在这种情况下,建议作者在 BUILD 文件或者代码中添加一个 TODO 注释或者链接,描述那些阻碍采用类型注释的问题。
(译者注:代码类型注释在帮助 IDE 或是 vim 等进行补全倒是很有效)

Python future 导入规范 | Google 官方现代语法指南
Python 分号使用规范 | Google 官方代码风格
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }