关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。
想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。
5年前关闭。
改善这个问题
我正在尝试找到一种工具来检查python中的编码样式。
对于PHP,我已经看到了Code Sniffer和Drupal使用的一个小Perl脚本。是否有用于python代码的工具?
过去,我主要使用PyLint-它可以突出显示何时使用未定义的变量,何时导入不使用它们的东西等等。
它可能有点冗长,抱怨诸如行长超过80个字符,变量与特定正则表达式不匹配,类的公共方法太少,方法缺少docs-trings之类的问题。
例如对于脚本。
import os
import somefakelib
def myfunc(x):
blah = "Something"
print os.listdir( x+blh )
PyLint生成以下消息:
C: 1: Missing docstring
F: 2: Unable to import 'somefakelib' (No module named somefakelib)
C: 4:myfunc: Missing docstring
C: 4:myfunc: Invalid name "x" (should match [a-z_][a-z0-9_]{2,30}$)
C: 4:myfunc: Invalid name "x" (should match [a-z_][a-z0-9_]{2,30}$)
E: 6:myfunc: Undefined variable 'blh'
W: 5:myfunc: Unused variable 'blah'
W: 2: Unused import somefakelib
它们都是有效的投诉,但是我倾向于禁用许多约定和重构消息。您可以禁用特定消息,作为代码中的注释:
#pylint:disable-msg=R0903,C0103,R0903,F0401,C0301
..或作为PyLint命令的命令行参数:
pylint --disable-msg=R0903,C0103,R0903,F0401,C0301 myfile.py
在禁用以上html" target="_blank">消息的情况下,它将为以上代码生成以下消息:
C: 1: Missing docstring
C: 4:myfunc: Missing docstring
E: 6:myfunc: Undefined variable 'blh'
W: 5:myfunc: Unused variable 'blah'
W: 2: Unused import somefakelib
PyLint还会生成一个“代码报告”,包括文件包含多少行代码/注释/文档字符串/空格,每个类别的消息数,并为您的代码提供“分数”-10表示无消息,0表示语法错误
另一个选择是PyFlakes,我发现它不太冗长(我最近开始使用它代替PyLint)。再次使用上述脚本,PyFlakes给出以下消息:
example.py:2: 'somefakelib' imported but unused
example.py:6: undefined name 'blh'
我使用的最后一个选项是pep8.py
,顾名思义,它强制执行PEP8。它是迄今为止最多的学究脚本,它强制执行诸如在函数/类之前/之后正确的空白行,代码周围的间距,正确的4位空格缩进等之类的事情。
在上面的代码上运行,它将产生以下结果:
example.py:4:1: E302 expected 2 blank lines, found 1
example.py:6:23: E201 whitespace after '('
example.py:6:32: W292 no newline at end of file
它主要用于强制执行诸如正确的空格之类的样式操作,对诸如PyLint或PyFlakes之类的代码不做太多静态分析,因此我将pep8.py与PyLint或PyFlakes结合使用。
pep8.py
最初是在此处的python邮件列表中宣布的,但是其中的下载链接现在已经消失了。从版本的旧版本
PyChecker是另一种选择,尽管我没有使用过
问题内容: 我如何强制Spark执行对map的调用,即使它认为由于其惰性求值而无需执行该调用? 我已经尝试过使用map调用了,但是仍然不能解决问题。我的地图方法实际上将结果上传到HDFS。因此,它不是无用的,但Spark认为是。 问题答案: 简短答案: 要强制Spark执行转换,您需要要求一个结果。有时,一个简单的动作就足够了。 TL; DR: 好的,让我们回顾一下 操作。 支持两种类型的操作:
我是jpa的新手,需要这样的东西: 我能修好它吗?
问题内容: 由于某些原因,我必须运行一个php脚本才能从Python获取图像。因为php脚本很大,而且不是我的,所以我需要几天的时间才能找到所使用的正确算法并将其转换为python。 我想知道是否有任何方法可以运行带有少量参数的php脚本,以返回python中的图像。 问题答案: 示例代码:
一点背景:我是一个AEM项目的FE开发人员。该项目是一个SPA AEM作为云服务。我从命令行运行作者实例。 我的电脑规格是: CPU: Intel(R)Core(TM)i5-7400 CPU@3.00GHz 3.00 GHz RAM: 24.0 GB SSD: 476 GB 操作系统:Windows 10 Pro 对于我们正在使用的AEM项目 Javasdk 11 Maven 3.6.3 我已经设
问题内容: 我有一个XML编写脚本,可以为特定的第三方工具输出XML。 我已经使用原始XML作为模板来确保构建所有正确的元素,但是最终的XML看起来并不像原始XML。 我以相同的顺序编写属性,但是lxml以自己的顺序编写属性。 我不确定,但是我怀疑第3部分工具希望属性按特定顺序显示,并且我想解决此问题,以便查看其属性顺序是否导致失败,或其他原因。 源元素: 我的源脚本: 我生成的XML: 有没有办
问题内容: 我目前正在使用Play!1.2.2及其新的Netty客户端框架。 尽管可以使HTTP和HTTPS异步提供服务,但我没有找到一种简单的方法来强制执行SSL。有没有与Play合作的人!有直接执行SSL的方法吗?不知道我是否需要创建重定向,或者是否可以在文件中快速解决此问题。 问题答案: 有两种方法可以强制实施SSL。 首先,您可以将所有操作设置为使用该方法,例如 另一种可能也是最好的方法是