2014-03-02 54 views
1

在Python代码中,命名类,方法和变量时,处理众所周知的缩写词的规范方式是什么?Python:使用首字母缩写命名

例如,考虑一个处理RSS提要的类。请问,与其是这样的:

class RSSClassOne: 
    def RSSMethod(self): 
     self.RSS_variable = True 

class ClassRSSTwo: 
    def MethodRSS(self): 
     self.variable_RSS = True 

或本:

class RssClassOne: 
    def rssMethod(self): 
     self.rss_variable = True 

class ClassRssTwo: 
    def MethodRss(self): 
     self.variable_rss = True 

即更重要的是,保留首字母大写还是PEP 008的建议?

编辑:从答案,我的结论是,这将是一段路要走:

class RSSClassOne: 
    def rss_method(self): 
     self.rss_variable = True 

class ClassRSSTwo: 
    def method_rss(self): 
     self.variable_rss = True 
+0

如果你想在开源项目工作,你一定要与PEP8工作。除此之外,使用snake_case保留类Capilatized和方法名... – Oz123

+0

当您将诸如pylint之类的工具应用于开发过程时,命名约定变得并不重要。 – Carl

回答

7

嗯,事实证明,PEP 8已经有这个话题涵盖here

注:当使用CapWords缩写,大写所有字母的缩写 。因此HTTPServerError优于 HttpServerError

换句话说,Python的惯例用于容纳缩写名称是:

  1. 请类名(通常,Python中的唯一部分使用CapWords)大写首字母缩写词。

  2. 在其他地方,为了符合其他naming conventions而使其成为小写字母。

下面是与ipaddress module演示:

>>> import ipaddress # IP is lowercase because this is a module 
>>> ipaddress.IPv4Address # IP is uppercase because this is a class 
<class 'ipaddress.IPv4Address'> 
>>> ipaddress.ip_network # IP is lowercase because this is a function 
<function ip_network at 0x0242C468> 
>>> 
+0

很好的例子。那么方法名称呢?PEP8表示它应该是words_with_underscores。我通常会写my_rss_method() – rafgoncalves

+0

我会建议添加这个观察到答案。这个问题提供的两个例子都有错误的方法名称。 – rafgoncalves

+0

其实,我刚刚发现了一个PEP 8节选,可以解释在这种情况下要做什么。所以,我会用它来代替。 – iCodez

0

我要说的是,继PEP 8的建议是做相关的编码风格的第一件事情。

1

我不认为第一个问题有任何问题。作为首字母缩写词代表一系列单词,并且在每个单词的开始处您使用CamelCase的Python class,因此在首字母缩写词中大写每个字母(单词)是完全可以的。

第一个代码示例,因此比第二个更符合Python代码的风格指南。总之,第一个因为PEP8构象非常重要。 :)

请记住,有有时(尽管很少)的实例,其中这些规则可以稍微弯曲。这可以被认为是其中之一。