为什么PyCharm在方法命名中不允许使用大写字母?

时间:2016-03-30 21:35:07

标签: python pycharm

我对Java命名约定感到满意,只要它以小写字母开头,您就可以自由命名方法,因此可以接受methodForTest()

然而,Python(PyCharm IDE)抱怨这种方式,它需要全部小写。

为什么呢?我可以禁用它,以便在方法命名中使用大写吗?

2 个答案:

答案 0 :(得分:10)

Python 没有这样的限制

Python标识符必须以下划线或字母(大写或小写)开头,后跟任意数量的下划线,数字或字母(再次,大写或小写,无关紧要);这意味着ALL_UPPERCASE名称是完全有效的Python。请参阅参考文档中的Identifiers and keywords部分; Python 3 expanded on this by allowing a wider range of Unicode

然而,广泛采用的PEP 8 Python styleguide确实可以在naming functions上说明:

  

函数名称应为小写,并根据需要用下划线分隔,以提高可读性。

这是约定但是,不是语法要求。也许您的IDE安装了一个linter,当您违反此约定时会发出警告。如果你愿意,你可以忽略它。我注意到PyCharm implements such a check,例如。

在PyCharm中,您可以单击警告图标并告诉PyCharm忽略错误类别:

PyCharm *Ignore errors like this* option

另见PyCharm documentation on suppressing inspections

答案 1 :(得分:0)

Python非常宽容(也许太多了),让你几乎做任何你想做的事。

您可以根据需要命名您的类,方法,变量。您可以访问实例的每个变量,没有公共/私有概念。

Pycharm / IntelliJ只是警告你,但不要强迫你遵循PEP8,但是,这是Python,而不是Java,应该尽可能地遵循PEP8。

Python完全是关于 可读性超过幻想 ,例如:

[x for x if a_list if x == 1]

优于

map(lambda x: x == 1, a_list)

以及

class MySuperAwesomeClass:
    pass

def my_super_function():
    pass

优于

class my_super_awesome_class:
    pass

def mySuperFunction()
    pass

通过这种方式,特别是在开发人员团队或具有多个贡献者的开源项目中,每个人都遵循一种惯例来让别人生活 更容易。