4

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

PHP - underscore_case() [在大多数情况下,lolo]

爪哇 -camelCase()

C# -PascalCase()

等等

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

4

3 回答 3

8

两个字:PEP 8

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

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

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

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

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

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

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

于 2009-11-13T22:13:24.893 回答
5

阅读PEP 8

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

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

于 2009-11-13T22:14:12.167 回答
1

七个字:Google Summer of Code Python 风格指南

请注意,一些命名约定与 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
于 2009-11-13T22:39:12.713 回答