当前位置: 首页 > 后端技术 > Python

使用更少的谷歌搜索!这3种Python秘密武器你知道吗?

时间:2023-03-26 17:41:55 Python

作为一名编写了5年Python的工程师,我发现我们的工具集变得越来越小,而不是越来越大。许多工具是不必要的或无用的,其中一些您根本无法使用。然而,这三个工具集是我使用时间最长的工具集。秘密武器#1:使用Kite更快地编写代码并减少谷歌搜索的时间大多数代码编辑器都有这样的自动完成功能:它使用语言(有时是库)文档来建议函数名称和参数等内容。这当然很好,但如果您的编辑器可以浏览多年的GitHub数据并自动完成功能名称和整行代码,那就太完美了。这只是您应该使用Kite的三个原因中的第一个。原因1:完美的代码行Kite查看你的代码库和变量、常用的在线参数名称、文档,并提出上下文建议:上面的例子展示了Kite如何预测你将使用哪个变量,即使它们被命名为Commonly(如b)或具有通用名称(如x或y)。我们花了大约50年的时间对Github上的所有代码进行语义索引,构建统计类型推断,以及以非常深入的方式使用这种语义信息的丰富统计模型。—AdamSmith,创始人兼首席执行官,Kite原因#2:文档副驾驶如果您从未听说过“RTFM”,那可能是因为您没有犯我的错误。无论如何,高级开发人员在查找错误或查看StackOverflow问题之前应该阅读官方文档。KiteCopilot使文档更易于阅读。它与您的编辑器一起运行,并实时显示您用光标突出显示的任何对象/功能/等的文档。从我的第一份工作到现在,我真的没有理由不先在文档中寻找答案。原因3:在本地运行一切都是为了在本地运行,因此您可以快速获得令人难以置信的建议,它可以离线工作,并且您的代码永远不会发送到云端。这对于互联网状况不佳的人和在闭源存储库中工作的人来说非常重要。事实证明,我已经使用Kite多年,而且它一直在不断改进。并且该工具在获得投资后一直是免费的。您所要做的就是为您的编辑器下载Kite插件,或者下载Copilot,它将为您安装插件。下载链接在这里:https://kite.com/?ref=pbadeer秘密武器2:使用Mypy稳定你的代码Python是动态类型的,简单的解释就是你可以随时将任何变量设置为任何数据类型(字符串、整数等)。#这两个变量类型的声明方式完全一样#Python自己动态找出数据类型#stringvar_name="stringhere"#integervar_name=1234相反的是静态类型语言,变量必须有特定的数据类型,并始终遵循它。#很多语言也需要声明数据类型#stringstrvar_name="stringhere"#integervar_name=1234动态类型的优缺点动态类型的好处是写的时候可以偷懒,减少代码的混乱。但缺点很多而且很大:你经常在开发周期的后期遇到错误,代码性能更差,因为Python不断评估类型函数不太稳定,因为它们的输入和输出可以在没有警告的情况下更改数据类型更稳定地传递代码因为其他人可能不知道您的变量是什么数据类型或可能成为什么数据类型,而不是在Python中静态键入Mypy。一个免费的Python模块,允许您在Python中使用静态类型。pipinstallmypy之后,这里有一个如何使用它的例子:Iterator[int]:#codehere在mypy示例中,我们指定该函数返回一个整数迭代器。这个简单的更改通过强制一致的输出使函数更适合未来。其他开发人员只需查看声明即可看到输出数据类型,这与仅使用文档不同,如果不遵守声明,您的代码将出错。这是从此处示例中提取的一个超级简单的示例,如果仍然没有意义,请检查它们。案例地址:http://www.mypy-lang.org/exam...秘密武器3:使用Sonarlint快速查找错误并编写更简单的函数现在每个编辑器都内置了某种类型的错误检查或“linter”。它查看代码(通常不运行代码)并尝试猜测可能出现的问题。这称为静态代码分析。VSCode中默认的PythonLinter动态代码分析实际上会尝试运行/编译部分代码以查看其是否正常工作,但它会在后台自动执行。事实上,与其猜测,它知道它是否有效,以及确切的错误是什么。SonarLint是动态代码分析等的最佳选择。这些特性是我喜欢它的原因:注释或未调用的代码我错误地将打印语句、注释掉的代码和未使用的函数放在我的代码库中。这会警告我,让它难以忘记,告诉我它在哪里,并且很容易找到。风险非常小一个包含不断更新的安全风险的庞大数据库被实时放入代码库,并且您暴露的任何已知漏洞都会收到警报。风险小到无法记住,所以每个人都应该使用一些东西来跟踪它们。Sonarlin是一个很好的起点。从未执行的代码与未调用的代码略有不同,如果我创建任何结果无法访问的计算,它会提示我。这些在编写代码时很难发现,并可能导致调试数小时,因此这是我最喜欢的功能之一。下面是一个例子:a=Noneifa==Noneornotaora:this_will_always_get_called()else:#sonarlint会警告你this_will_never_get_called()行永远不会被执行认知复杂性简单的解释就是他们创建了一个数学公式计算阅读/理解代码的难度。它不仅非常有用,而且很容易理解。每次SonarLint要求我“降低认知复杂性”时,它都会对规则进行简单的解释,例如“嵌套的if语句过多”。事实证明,我发现这比基本的阻塞和linting实践更有用,而且我确信它让我写出更人性化的代码。顺便说一下,这是Pythonic!SonarLint是免费的,因此没有理由不立即获取并将其添加到您的编辑器中。结论如果您跳过这里,只是一个快速警告,除非您对这些功能有基本的了解,否则您可能无法正确使用这些功能。以下是三个秘诀的概述:编写更快,使用更少使用KiteCopilot和编辑器插件进行谷歌搜索使用MypyPython模块来稳定您的代码使用SonarLint编辑器插件来快速查找错误并编写更简单的函数希望这些工具3超级简单使用对你有用的工具。文渊网,仅供学习,侵删。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,800+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕你学不会!https://shimo.im/docs/JWCghr8...《Python学习资料》关注公众号【蟒圈】,每日优质文章推送。