当前位置: 首页 > news >正文

网站授权合同阿里巴巴上怎样做自己的网站

网站授权合同,阿里巴巴上怎样做自己的网站,商水县住房城乡建设网站,效果图网站排行之前我们介绍过,Python作为一门动态语言,为人诟病的缺点之一,就是难以像java那样,支持静态类型检查,这样会把一些错误带到运行中(如果你不进行单元测试的话)。 不过,随着type hint的推开,实际上现在Python已经有了比较充分的静态类型检查。这一章我们先介绍其它Lint工…

之前我们介绍过,Python作为一门动态语言,为人诟病的缺点之一,就是难以像java那样,支持静态类型检查,这样会把一些错误带到运行中(如果你不进行单元测试的话)。

不过,随着type hint的推开,实际上现在Python已经有了比较充分的静态类型检查。这一章我们先介绍其它Lint工具,然后再重点介绍静态类型检查工具 - mypy。

4. Lint工具

Lint工具对代码进行逻辑检查和风格检查。逻辑检查是指象使用了未定义的变量,或者定义的变量未使用,没有按 type hint 的约定传入参数等等;风格检查是指变量命名风格、空白符、空行符的使用等。

Python社区有很多Lint工具,比如Plint, PyFlakes, pycodestyle, bandit, Mypy等。此外,还有Flake8和Pylama这样,将这些工具组合起来使用的工具。

在选择Lint工具时,重要的指标是报告错误的完全度和速度。过于完备的错误报告有时候也不见得就是最好,有时候会把你的大量精力牵涉到无意义的排查中 – 纯粹基于静态分析的查错,有时也不可避免会出现错误;同时也使得运行速度降低。

4.1. flake8

ppw选择了flake8和mypy作为lint工具。flake8实际上是一组lint工具的组合,它由pycodestyle, pyflakes, mcccab组成。

4.2. pycodestyle

pycodestyle用来检查代码风格(空格、缩进、换行、变量名、字符串单双引号等)是否符合PEP8标准。

4.3. pyflakes

pyflakes用来检查语法错误,比如,定义但未使用的局部变量,变量重定义错误,未使用的导入,格式化错误等等。人们通常拿它与pylint相对照。pyflakes与pylint相比,所能发现的语法错误会少一些,但误报率更低,速度也更快。在有充分单元测试的情况下,我们更推荐初学者使用pyflakes。

下面是一个pylint报告错误,而pyflakes不能报告的例子:

def add(x, y):print(x + y)value: None = add(10, 10)

显然,代码作者忘了给add函数加上返回语句,因此,将value赋值为add(10, 10)的结果是None。pylint会报告错误,但是pyflakes不会。

但是pylint存在一定的误报率,上面的代码交给pylint来进行语法检查,其结果是:

xxxx:1:0: C0114: Missing module docstring (missing-module-docstring)
xxxx:1:0: C0116: Missing function or method docstring (missing-function-docstring)
xxxx:1:8: C0103: Argument name "x" doesn't conform to snake_case naming style (invalid-name)
xxxx:1:11: C0103: Argument name "y" doesn't conform to snake_case naming style (invalid-name)
xxxx:5:0: E1111: Assigning result of a function call, where the function has no return (assignment-from-no-return)
xxxx:5:0: C0103: Constant name "value" doesn't conform to UPPER_CASE naming style (invalid-name)

这里第1,2和第5行报告都是正确的。但第3和第4行的报告很难说正确,为了代码的简洁性,我们使用单个字母作为局部变量是很常见的事。PEP8规范也只要求我们不得使用"l"(小写的字母L), “O”(字母o的大写,很难与数字0区分), “I”(字母i的大写)。

而最后一行的报告则显然是错误的,这里函数add没有返回值的错误,导致pylint误以为value是一个常量,而不是一个变量。事实上,当你修复掉add函数没有返回值的错误时,pylint就不会报告这个错误了。

这是为什么我们推荐初学者使用pyflakes,而不是pylint的原因。初学者很容易淹没在pylint抛出的一大堆错夹杂着误报的错误报告中,花费大量时间来解决这些误报,却茫然无计。另外,pylint过于严格的错误检查,对还未养成良好编程习惯的初学者,可能会使他们感到沮丧。比如,上面关于缺少文档的错误报告,尽管是正确的,但对初学者来说,要一下子达到所有这些标准,会使得学习曲线变得过于陡峭,从而导致学习的热情降低。

mccabe用来检查代码的复杂度,它把代码按控制流处理成一张图,从而代码的复杂度可以用下面的公式来计算:
M = E − N + P M = E - N + P M=EN+P,其中E是路径数,N是节点数,P则是决策数。

以下面的代码为例:

http://www.yayakq.cn/news/122636/

相关文章:

  • 团队建设网站介绍导购类wordpress cms
  • 女人与黑狗做视频网站wordpress汉化包
  • 网站建设哈尔滨app开发2网站建设公司的重要性
  • 常德红网官网网站简单html5网页设计
  • 网站建设数据库选择成都百度推广联系方式
  • 上海网站seo设计国外展柜网站
  • 浙江省建设厅继续教育网站2022最近比较火的营销事件
  • 网站建设方投资成本东营做网站优化价格
  • 重庆做网站letide外贸做网站用什么
  • 网站开发框架是什么旅游网站建设的方法
  • 什么样的网站利于seo网站推广策划书 精品
  • 沈阳制作网站的公司自我介绍网页制作模板
  • 单页网站仿制教程无限看片的视频大全免费下载
  • 打电话做网站的话术商昊网站建设
  • 山东省城乡住房建设厅网站网站建设与维护新的体会
  • 农业企业网站建设广州线下教学
  • 定安网站制作推荐国外网站设计
  • 企业网站示例郑州市公共资源交易中心
  • 谁给个网站呀外贸网站建设软件
  • 长春网站建设硕成传媒彩票理财网站建设
  • 南开天津网站建设网站备案怎样提交管局
  • 网站域名重定向一个小外贸公司怎么开
  • 徐州金桥建设监理有限公司网站要建立网站怎么建立
  • 服务好的徐州网站建设手机网站判断跳转
  • 为进一步加强校园网站建设城乡建设网站首页
  • 网站的js效果代码网站主页和子页怎么做
  • 大型网站建设建站模板什么叫做电商平台
  • wordpress建网站视频高新网站建设哪家好
  • 那里有正规网站开发培训学校农村自建房设计图纸大全
  • 株洲网站建设优化企业网络营销策略分析论文