程序里有很多东西需要命名,

​ 良好的命名习惯可以提高编程效率; 减少出错;

​ 良好命名的程序清晰易读。

​ 好的名称可以提供很多有价值的信息。

本文解释作者在《Python编程基础及应用》一书中所使用的命名规则。

命名示例

变量、类的数据成员
iSum sName fPrice
函数名称
add() convert() del() empty() push_back() pop()
getPrice() setPrice() draw() render() repaint()
类型名称
Student GraphDrawer Campus Engine
FloatBuffer Lesson Monitor Printer EMailPacket

版权声明

本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。

本文不可以以纸质出版为目的进行改编、摘抄。

正确, 错误 vs 好,相对不好, 坏

只要符合所用语言的命名规则的命名原则上都是“正确”的。

不同的人有不同的命名习惯。

没有标准答案,只有主观的好或者相对不好的判断。

但真的很重要:

​ 良好的命名习惯可以提高编程效率; 减少出错;

​ 良好命名的程序清晰易读。

​ 好的名称可以提供很多有价值的信息。

规则1 全程使用英文,不准用拼音

▪KHBH XH ZHYE DQJG - 猜得出这些名称是什么意思吗?
sCustomerNo, sStudentNo fAccountBalance fCurrentPrice
Too long for you ?
sCusNo, sStuNo, fAccBalance , fCurPrice

规则2 变量/类的数据成员的命名

类型名缩写(小写) + 英文单词或其缩写(首字母大写)

类型 解释 缩写 举例
float 浮点数 f fPrice fSum fAmount fScore fHeight fWeight
int 整数 i iCount / iCnt iStudentCount iWidth iHeight iCapacity
string 字符串 s sStudentNo sMemo sHint sDiagnostics sContent sName
bool 布尔型 b bFound bCaptured bFull bHungry bDied bMarried bAvailable

如果变量表达的是一个集合(数组或者list), 用小写的英文单词的复数形式:

​ students members prices wheels teachers universities shoes arms

规则3 函数的命名

一个英文单词: 小写

add() convert() del() empty() try() pop() push()

两个英文单词: 第二个单词首字母大写 动+名

addAmount() setPrice() getPrice()

setEmpty() pushDown() riseUp()

toString() toDouble()

规则4 类型的命名

由一个或者两个英文单词构成,每个单词的首字母均大写

FloatBuffer PrinterQueue Student Lesson

Movie Song Employee

Team Board Company

Supplier GoldFish CellPhone

GraphDrawer

在面向对象程序设计当中,一个文件通常只包括一个类型,通常文件名由类型名 + . + 扩展名构成:

Student.py Company.h Company.cpp PrinterQueue.java

规则5 例外

如果有一个临时变量,仅在上下几行局部代码中被使用,用完即弃,可以用小写单字母:(代码阅读者容易通过上下文确定变量的类型和用途)

1
2
3
4
5
s  = s  + “, Done”
print(s)

for i in range(100):
print(i)

当心中文目录及中文文件名

很多开发环境及软件对中文的支持并不好,永远不要使用任何包含中文的目录或文件名:

示例 正/误
d:/学习资料/python/实验1 X
d:/Learing/python/Test1

忠告

命名这件事不同的人有不同的看法。

认真命好每个名, 尽量遵守规则。

表面上花时间,实际上省时间。

程序如果需要交给教师检查或者请求教师协助,两件事情先做好:

  • 确认命名符合要求;
  • 把程序排列整齐,检查缩进,分行。

本文内容节选自作者编著的《Python编程基础及应用》(高等教育出版社)一书。

Python编程基础及应用

免费随书B站MOOC: