草庐IT

python - 为什么 pylint 假设模块级变量是常量?

在对howtostopPylintmessageC0103的回答中,@ChristopheD准确地提到“pylint将所有模块级变量解释为‘常量’。”我喜欢Pylint,并且假设作者对其默认行为有鼓励代码质量的原因。那么,谁能告诉我:为什么pylint将所有模块级变量解释为“常量”?这可能是pylint突出显示隐式globalvariables,whichareconsideredbad的方式吗?? 最佳答案 在回答WhyisGlobalStatesoEvil?明确指出使用全局变量会增加复杂性和不确定性,因为您不知道谁访问了这个全局

python - 在 python 和 pylint 中添加到 sys.path 的路径

所以。我知道这个问题似乎已经被问死了,但似乎没有一个答案能解决我想做的事情。我在另一个目录中有一个库,我想将其包含在我运行的一组其他项目中。我不希望在我运行python时每次添加该库..所以,我一直在做的是在我的python代码中:importsyssys.path.append("/tmp/demo/src/my-lib")importMyClass这很好用。但是,既然我发现并喜欢pylint,它就会提示E:7,0:Unabletoimport'MyClass'(import-error)C:7,0:Import"importMyClass"shouldbeplacedattheto

python - 继承的公共(public)方法是否可以从 Pylint 的统计数据中排除?

Pylint不断报告以下代码的错误(R:73,0:MyLogging:Toomanypublicmethods(22/20)):classMyLogging(logging.Logger):deffoo(self):passdefbar(self):pass起初我认为这是Pylint中的一个错误,因为MyLogging类正好有22行代码,但后来我意识到,它包括基类中的所有公共(public)方法logging.Logger同样,它在统计中增加了20。是否可以从Pylint统计信息中排除基类的公共(public)方法?PS.:我知道我可以将max-public-methods更改为更大的

python - 如何防止 python pylint 提示套接字类 sendall 方法

我有一些代码使用简单的tcp套接字设置来测试某些东西。我们在python文件上运行pylint--errors-only,通常作为验证我们所有代码的一种方式。但是,python套接字库文档中给出的简单示例代码-http://docs.python.org/library/socket.html-将输出:*************ModuleSocketExampleE:16:Instanceof'_socketobject'hasno'recv'memberE:18:Instanceof'_socketobject'hasno'sendall'member文档显示了这些成员,代码运行并

python - 为什么 Pylint 在此 raise 语句中给出错误 E0702,引发 NoneType?

假设我有以下代码。deffoo():foobar=NoneiffoobarisnotNone:raisefoobar当我通过pylint运行此代码时,出现以下错误:E0702:4:foo:RaisingNoneTypewhileonlyclasses,instancesorstringareallowed这是pylint中的错误吗?我的pylint太旧了吗?pylint0.18.0,astng0.19.1,common0.45.0Python2.5.1(r251:54863,Aug252008,09:23:26)注意:我知道这段代码没有任何意义,它被提炼到最基本的部分以暴露手头的问题,

python - 带有 pylint 的 Jenkins 导致构建失败

我添加了一个构建步骤来执行Python脚本。在此脚本中,使用lint.Run(..args)调用pylint以检查代码。该脚本有效,但最后,构建失败并显示唯一的错误消息:构建步骤“执行Python脚本”将构建标记为失败有人知道为什么会这样吗? 最佳答案 你也可以简单的放一个pylint||exit0在shell命令行中。Pylint插件无论如何都会通过检查pyllint的结果来使构建失败。 关于python-带有pylint的Jenkins导致构建失败,我们在StackOverflow上

python - 如何使 pylint 成为 setup.py 测试过程的一部分?

我正在尝试将所有.py文件的pylint检查添加到setuptools的test过程中(也许我正在做一些事情有误,请指正)。这就是我在setup.py中所做的:classMyTest(test):defrun_tests(self):importpytestimportpylintif(pylint.run_pylint()):sys.exit(-1)if(pytest.main(self.test_args)):sys.exit(-1)setup(tests_require=['pytest','pylint'],cmdclass={'test':MyTest},...)当我运行py

python - 可以在内联注释中指定哪些 pylint 选项?

我注意到我可以使用评论禁用特定消息。例如,默认情况下pylint会提示少于三个字母的变量名。我可以这样抑制它:#pylint:disable=invalid-namedefsome_string_operation(s):#(thesamethingherewouldalsowork)returnsomething(s)但我不能,例如,将s添加到good-names列表中。这不起作用:#pylint:good-names=sdefsome_string_operation(s):returnsomething(s)显然不是所有选项都可以那样修改。哪些可以?

python - Pylint W0223 : Method . ..在类中是抽象的...但未被覆盖

Pylint为抽象类的子类生成此错误,即使这些子类本身未实例化并且方法被在具体子类中覆盖。为什么Pylint认为我的抽象子类应该是具体的?如何在不拿出锤子并在rc文件中完全禁用它的情况下关闭此警告? 最佳答案 出于某种原因,pylint认为该类不是抽象的(当前检测是通过检查引发NotImplementedError的方法来完成的)。在模块(仅在该模块中禁用)或类(仅在该类中)的顶部添加像#pylint:disable=W0223这样的注释应该可以解决问题。 关于python-Pylint

python - Django forms.ModelForm、Pylint 和新/旧样式类

我有一个看起来像这样(简化)的Django1.5表单:classBidForm(forms.ModelForm):classMeta:fields=()model=Biddef__init__(self,*args,**kwargs):super(BidForm,self).__init__(*args,**kwargs)something()当我在上面运行Pylint时,我得到了这个错误:E1002::BidForm.__init__:Useofsuperonanoldstyleclass我假设这意味着Django的forms.ModelForm是一个旧式类并且根据pythondoc