知行编程网知行编程网  2022-12-10 07:30 知行编程网 隐藏边栏  6 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中的三个秘密武器,你接稳了没?的相关知识,包括python 解密,以及python加密解密算法这些编程知识,希望对大家有参考作用。

Python 的三大秘密武器你捡到了吗?

大浪淘沙,沉者为金。作者已经编写 Python 代码 5 年多了。这么久了,工具集并没有变大,反而越来越小了。工具不多,只要好用就行。这三种方法笔者已经使用了很长时间。与其他方法不同,使用它们的频率只会增加。你值得拥有!

Python 的三大秘密武器你捡到了吗?


秘密武器#1:快速编码,少用Kite谷歌

大多数代码编辑器都有这样的自动完成功能,......使用一些语言(库)文档来指示函数名称和参数:

Python 的三大秘密武器你捡到了吗?

这并不难,但如果编辑器可以浏览几年的 GitHub 数据并自动完成不仅是函数名称,还可以自动完成整行代码,那会怎样呢?这只是使用 Kite 的第一个原因。


原因 1:代码行填充

Kite 访问代码库和个别变量、常用在线参数名称和文档后,输出高质量的上下文建议:

Python 的三大秘密武器你捡到了吗?

上面的示例展示了 Kite 如何预测编码人员需要使用的变量,即使它们的名称很常见(如 b),或更常见的名称(如 x 或 y)。

“我们在 Github 上花了 50 多年的时间对所有代码进行语义索引,构建统计类型推断,以及深入使用这种语义信息的丰富统计模型,”Kite 创始人兼首席执行官亚当史密斯说。


原因 2:在本地私密运行

最重要的是,它在本地运行,因此你可以快速获得提示、离线工作,并且不会将代码发送到云端。

这对于网络条件异常和使用封闭源代码存储库的人来说非常重要。


原因 3:文档编程助手


Python 的三大秘密武器你捡到了吗?

如果你从未听说过“RTFM”一词,那可能是因为你没有与第一代开发人员打交道。

向高级开发人员寻求建议是值得的,甚至在去 StackOverflow 寻找答案之前阅读文档也是值得的。 Kite Copilot 使文档变得非常简单,它与编辑器并发运行,并实时显示文档中光标经过的任何对象/功能等。

结果

我多年来一直在使用 Kite,而且它变得越来越好。凭借超过 1700 万美元的投资,它不会轻易失败,而且它的工具是完全免费的。编辑器只需要下载Kite插件,或者下载copilot(编码助手)安装插件即可。

Python 的三大秘密武器你捡到了吗?


秘密武器#2:用Mypy检查代码

编码 Python 是动态的,简单解释一下:编码人员可以随时将任何变量更改为任何数据类型(字符串、整数等)。

# These two variable types aredeclared the exact same way
# Python figures out the data type on it's own, dynamically# string
var_name = "string here"# integer
var_name = 1234

相反的是静态类型语言,它的变量必须具有特定的数据类型并始终服从它。

# Many languages require the datatype to be declared too# string
str var_name = "string here"# integer
int var_name = 1234


动态编码的优点/缺点

动态编码的好处是可以偷懒,减少乱码。但是它也有很多不小的缺点:

· 通常在开发周期后期会出现错误

· 由于Python不断计算类型,编码效果会降低

pass代码比较不稳定,因为别人可能不知道里面的变量是什么数据类型或者可能变成什么数据类型

· 函数将更加不稳定,因为它们的输入和输出可以在没有警告的情况下更改数据类型

Python 的三大秘密武器你捡到了吗?


Python 中的静态键入

打开 Mypy,这是一个免费的 Python 模块,可让你在 Python 中静态编码。发出 pip install mypy 命令后,以下是其使用示例:

# Declaring a function using normaldynamic typing, without mypy
def iter_primes():
# code here# Declaring the samefunction with mypy static typing
from typing import Iteratordef iter_primes() -> Iterator[int]:
# code here

使用 mypy 示例,可以指定函数返回整数迭代器。通过强制执行一致的输出,这个简单的更改使函数更具可预测性。

其他开发人员不只是使用文档,而是查看将输出的数据类型,如果该定义不符合,代码就会出错。

结果

很难列出静态类型可以为你避免未来痛苦的所有方式,但 mypy 文档在回答常见问题方面做得很好,有利有弊。

如果你在稳定性是重中之重的代码生产库上工作,一定要试试 myby。

Python 的三大秘密武器你捡到了吗?


秘密武器#3:用Sonarlint快速查找错误,编写更简单的函数

如今,每个编辑器都有某种类型的错误检查或内置的“linter”,可用于查看代码(通常无需运行代码)并预测可能的错误。这是静态代码分析。

Python 的三大秘密武器你捡到了吗?

动态代码分析实际上会尝试运行/编译代码的某些部分以查看其是否正常工作,但它会在后台自动运行。它不是猜测,它实际上知道代码是否会出错,并且确切地知道它是什么。

SonarLint是动态代码分析中最好的,有超多优点:


已注释或未命名的代码

我对拥有一个充满输出定义、注释代码和未使用函数的代码库感到内疚。但这就是让你保持警觉、印象深刻并且易于查找的原因。


不执行命令代码

与未命名代码略有不同,不执行命令的代码会在编码人员创建不可能的评估时发出警告。这是非常必要的,否则会导致调试数小时,这是我最喜欢的警告之一。

示例:

a = Noneif a == None or not a or a:
this_will_always_get_called()
else:
# sonarlint will warn you about thisline never being executed
this_will_never_get_called()


安全风险

代码库中庞大的安全风险数据库将不断实时更新,提醒用户他们面临的任何已知漏洞风险。

安全风险问题属于小概率事件,基本不可能给我们留下印象。因此,每个人都应该行动起来以保持跟踪。 SonarLint 是一个很好的起点。

Python 的三大秘密武器你捡到了吗?


认知复杂性

这个话题非常有趣,我可以写一篇关于它的整篇文章。

简单的解释是有人创建了一个数学公式来对代码的阅读/理解难易程度进行评分。

它非常有用且易于理解。每次SonarLint要求coder“降低认知复杂度”时,都会简单的解释coder的不规范操作,比如“undefined, nested exception”。


结果

这比基本的屏蔽和 lint 练习更有用,编码人员可以编写更人性化的代码。这是Pythonic! !

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享