程序里有很多东西需要命名,
良好的命名习惯可以提高编程效率; 减少出错;
良好命名的程序清晰易读。
好的名称可以提供很多有价值的信息。
本文解释作者在《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 | s = s + “, Done” |
当心中文目录及中文文件名
很多开发环境及软件对中文的支持并不好,永远不要使用任何包含中文的目录或文件名:
示例 | 正/误 |
---|---|
d:/学习资料/python/实验1 | X |
d:/Learing/python/Test1 | √ |
忠告
命名这件事不同的人有不同的看法。
认真命好每个名, 尽量遵守规则。
表面上花时间,实际上省时间。
程序如果需要交给教师检查或者请求教师协助,两件事情先做好:
- 确认命名符合要求;
- 把程序排列整齐,检查缩进,分行。
本文内容节选自作者编著的《Python编程基础及应用》(高等教育出版社)一书。
免费随书B站MOOC: