【问题标题】:Why does pylint assume module-level variables are constants?为什么 pylint 假设模块级变量是常量?
【发布时间】:2015-12-13 11:51:06
【问题描述】:

how to stop Pylint message C0103 的回答中,@ChristopheD 准确地提到“pylint 将所有模块级变量解释为‘常量’。”

我喜欢 Pylint,并假设作者对其默认行为有代码质量鼓励的原因。那么,谁能告诉我:为什么 pylint 将所有模块级变量都解释为“常量”?

这可能是 pylint 突出隐式 global variables, which are considered bad 的方式吗?

【问题讨论】:

  • 因为 pep8 指定模块级全局变量应该以下划线为前缀......所以它可能遵循该建议......也许......不确定......我用大锤敲了我的 pycharm 所以我无法真正验证 atm :P

标签: python global-variables pylint


【解决方案1】:

在回答 Why is Global State so Evil? 时澄清说,使用全局变量会增加复杂性和不确定性,因为您不知道谁访问了这个全局变量。

如答案中所述,它还会使您的代码(单元)可测试性降低。

将其声明为常量在 linting 术语中更容易接受,因为当变量/常量不改变时,您就不会有这种不确定性。

【讨论】:

    猜你喜欢
    • 2019-11-08
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2018-01-16
    • 1970-01-01
    相关资源
    最近更新 更多