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

4

我习惯于Java的命名约定,在这里你可以自由地命名方法,只要以小写字母开头,因此methodForTest()是可以接受的。

然而,Python(PyCharm IDE)对此方式表示不满,并要求所有字母都是小写。

为什么?我能否禁用这个限制,以便在方法命名中使用大写字母?


2
它会抱怨但不会强制你遵循PEP8,然而这是Python,而不是Java,应尽可能遵循PEP8。 - DevLounge
1
你可以使用大写字母创建一个方法。你只是会收到一个警告,因为这违反了PEP8风格指南。 - idjaw
完全是允许的。只是不鼓励这样做,就像给一个Java方法命名为method_for_test一样。 - user2357112
当然,你可以进行配置。 - jonrsharpe
如何在PyCharm中禁用PEP 8的特殊命名约定检查? - matth
2个回答

14

Python没有这样的限制。

Python标识符必须以下划线或字母(大写或小写)开头,后面可以跟任意数量的下划线、数字或字母(同样是大写或小写,无所谓)。这意味着全大写名称在Python中是完全有效的。请参阅参考文档中的标识符和关键字部分;Python 3 通过允许更广泛的Unicode范围来扩展了此功能

然而,广泛采用的PEP 8 Python风格指南命名函数有以下建议:

函数名应该小写,必要时使用下划线分隔单词以提高可读性。

这只是一种惯例,而非语法要求。也许你的IDE安装了linter,当你违反这个惯例时会发出警告。如果你愿意,可以忽略它。例如,我注意到PyCharm实现了这样的检查
在PyCharm中,您可以单击警告图标并告诉PyCharm忽略错误类别:

PyCharm *Ignore errors like this* option

此外,还可以查看PyCharm抑制检查文档

1
Python非常宽容(也许太宽容了),你可以按照自己的方式命名类、方法和变量,可以访问实例的每个变量,没有公共/私有概念。
Pycharm/IntelliJ只是警告您,但不强制遵循PEP8,然而,这是Python,而不是Java,应尽可能遵循PEP8。
Python更注重易读性而不是花哨,例如:
[x for x if a_list if x == 1]

is preferable to

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

同时也

class MySuperAwesomeClass:
    pass

def my_super_function():
    pass

is preferable to

class my_super_awesome_class:
    pass

def mySuperFunction()
    pass

在开发团队或多人参与的开源项目中,通常会有一种惯例,每个人都遵循以使其他人的工作更加轻松。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接