2016-03-30 48 views
-1

我很喜欢Java命名约定,只要它以小写字母开头,所以您可以自由地命名您的方法,因此methodForTest()是可以接受的。为什么PyCharm在方法命名中不允许使用大写字母?

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

为什么?我可以禁用这个,所以我可以在方法命名中使用大写字母吗?

+1

它抱怨,但不强制你遵循PEP8,但是,这是Python,而不是Java,并且应该尽可能遵循PEP8。 –

+0

您可以使用大写字母创建方法。您只是因为违反[PEP8](https://www.python.org/dev/peps/pep-0008/)风格指南而收到警告。 – idjaw

+0

这是完全允许的。它只是令人沮丧,像命名一个Java方法'method_for_test'。 – user2357112

回答

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

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 

这种方式,尤其是在一个团队的开发人员或与多个供体的一个开源项目,有一种常规的,其每个人都遵循让他人的生活更轻松 。

相关问题