【问题标题】:The correct case&format of variable and methods and for Python变量和方法的正确大小写和格式以及 Python
【发布时间】:2009-11-13 22:12:21
【问题描述】:

所以我知道有些语言有预期的约定。

PHP - underscore_case() [大部分情况,lolo]

Java - camelCase()

C# - PascalCase()

等等

什么是“Pythonic”命名约定?我知道这最终并不重要,但我只是想知道大多数模块是否有一种“最佳实践”方式。

【问题讨论】:

    标签: python camelcasing pascalcasing


    【解决方案1】:

    两个字:PEP 8

    PEP 8 是(事实上的)Python 风格指南。本文档的一些亮点(我故意遗漏了一些内容;请阅读原始文档的来龙去脉):

    • 包和模块名称:全小写的名称。如果提高可读性,可以在模块名称中使用下划线。

    • 类名:几乎无一例外,类名都使用 CapWords 约定。*

    • 全局变量名称:约定与函数的约定大致相同。

    • 函数名称:函数名称应为小写,必要时用下划线分隔单词以提高可读性。混合大小写仅在已经是主流样式的上下文中允许使用(例如threading.py),以保持向后兼容性。

    • 方法名称和实例变量:为提高可读性,需要用下划线分隔单词的小写字母。仅对非公共方法和实例变量使用一个前导下划线。

    • 常量:全部大写,用下划线分隔单词。示例包括。

    【讨论】:

    • @Stephan,很好的答案,很高兴这只是让你超过 10K 级别的一个!
    • @mjv:谢谢 :) 这实际上是另一个帮助我超过 10K 的答案,但它甚至可能是在此之前的一个答案,如果 OP 在投票之前没有接受答案。我今天在 9999 达到了我的声望上限(做了一个截图:),所以以上任何点都是由于接受的答案。
    【解决方案2】:

    阅读PEP 8

    这是 Python 代码的风格指南,由 Python 的创建者 Guido van Rossum 编写。

    顺便说一句,您的问题的答案是使用underscore_case 表示变量和函数名称,使用PascalCase 表示类。

    【讨论】:

    • 哇 - 所以我先回答了,但我的编辑/扩展使它看起来像我回答了第二个。是新的吗?
    【解决方案3】:

    七个字:Google Summer of Code Python Style Guide

    请注意,某些命名约定与 PEP8 不同,而是遵循该样式指南起源的原始 Google Python 样式指南。

    • “内部”表示模块内部或类中的受保护或私有。 在前面添加单个下划线 (_) 可以支持保护模块变量和函数(不包括在 import * from 中)。
    • 在实例变量或方法前添加双下划线 (__) 可以有效地使变量或方法对其类私有(使用名称修饰)。
    • 将相关的类和顶级函数放在一个模块中。与 Java 不同,没有必要将自己限制为每个模块一个类。但是,请确保同一模块中的类和顶级函数具有高内聚性。
    • 使用 CapWords 作为类名,而使用 lower_with_under.py 作为模块名。

    命名示例

    • 包:lower_with_under
    • 模块:lower_with_under_lower_with_under
    • 类:CapWords,_CapWords
    • 例外:CapWords
    • 功能:firstLowerCapWords()_firstLowerCapWords()
    • 全局/类常量:CAPS_WITH_UNDER_CAPS_WITH_UNDER
    • 全局/类变量:lower_with_under_lower_with_under
    • 实例变量:lower_with_under_lower_with_under(受保护)或__lower_with_under(私有)
    • 方法名称:firstLowerCapWords()_firstLowerCapWords()(受保护)或__firstLowerCapWords()(私有)
    • 函数/方法参数:lower_with_under
    • 局部变量:lower_with_under

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2014-09-04
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2021-10-15
      相关资源
      最近更新 更多