0%

变量命名法综述

下划线命名法

下划线命名法:underline:单词与单词之间通过下划线连接

1
student_name

驼峰命名法

驼峰命名法:Camel:混合使用大小写字母来构成变量和函数名称。

  • 每个逻辑点用大写字母标记
  • 驼峰式命名法分为大驼峰式命名规则:FirstName, CamelCase
  • 小驼峰式命名规则:firstName, camelCase
1
2
3
4
5
def printStudentName():  # bad
pass

def print_student_name(): # good
pass

帕斯卡命名法

帕斯卡命名法:Pascal:又称大驼峰式:与驼峰命名法类似,只是它的首字母也是大写的。

1
2
class StudentName():
pass

匈牙利命名法

匈牙利命名法:Hungarian:通过在变量名前加相应小写字母的符号标识作为前缀,标识出变量的作用域、类型等信息

  • 识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途
  • 匈牙利命名法分为系统和应用两种。系统着眼于类型。应用着眼于语义,比如 col 表示行,c 表示计数。
1
2
3
4
5
6
7
8
9
10
11
12
# 属性+类型+描述

g_:全局变量
m_:类成员变量
s_:静态变量
c_:常量

b:bool
int
dict
list
fn:函数

命名常识

  • 合理使用前缀

    • bool 型的:is, has, can, should, need
    • 检查:ensure, validate
    • 需求相关:try, force
    • 异步相关:async, sync,blocking
    • 回调方法:on, before, pre, will, after, did,
    • 对象生命周期:initialize, pause, stop, destroy(abandon), dispose
    • 集合操作相关:contain, add, append, insert, put, remove, enqueue, dequeue, push, pop, peek, find
    • 数据相关:create, new, from, to, update, load, fetch, delete, remove, save, store, commit, apply, clear, reset
  • 合理使用缩写,如 temp->tmpstatistic->statincrement->incmessage->msgimage->img

  • 命名中有特殊约定或缩写,需注释说明

  • i、j、k 除了作为局部循环变量,其他地方都是不允许的

  • 同一项目内,模块的向外接口加模块名前缀

  • 合理使用反义词

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    add / remove begin / end create / destroy
    insert / delete first / last g et / release
    increment / decrement put / get
    add / delete lock / unlock open / close
    min / max old / new start / stop
    next / previous source / target show / hide
    send / receive source / destination
    cut / paste up / down
    示例:
    intmin_sum;
    intmax_sum;
    intadd_user( BYTE *user_name );
    intdelete_user( BYTE *user_name );

    get获取 set 设置
    add 增加 remove 删除
    create 创建 destory 移除
    start 启动 stop 停止
    open 打开 close 关闭
    read 读取 write 写入
    load 载入 save 保存
    create 创建 destroy 销毁
    begin 开始 end 结束
    backup 备份 restore 恢复
    import 导入 export 导出
    split 分割 merge 合并
    inject 注入 extract 提取
    attach 附着 detach 脱离
    bind 绑定 separate 分离
    view 查看 browse 浏览
    edit 编辑 modify 修改
    select 选取 mark 标记
    copy 复制 paste 粘贴
    undo 撤销 redo 重做
    insert 插入 delete 移除
    add 加入 append 添加
    clean 清理 clear 清除
    index 索引 sort 排序
    find 查找 search 搜索
    increase 增加 decrease 减少
    play 播放 pause 暂停
    launch 启动 run 运行
    compile 编译 execute 执行
    debug 调试 trace 跟踪
    observe 观察 listen 监听
    build 构建 publish 发布
    input 输入 output 输出
    encode 编码 decode 解码
    encrypt 加密 decrypt 解密
    compress 压缩 decompress 解压缩
    pack 打包 unpack 解包
    parse 解析 emit 生成
    connect 连接 disconnect 断开
    send 发送 receive 接收
    download 下载 upload 上传
    refresh 刷新 synchronize 同步
    update 更新 revert 复原
    lock 锁定 unlock 解锁
    check out 签出 check in 签入
    submit 提交 commit 交付
    push 推 pull 拉
    expand 展开 collapse 折叠
    begin 起始 end 结束
    start 开始 finish 完成
    enter 进入 exit 退出
    abort 放弃 quit 离开
    obsolete 废弃 depreciate 废旧
    collect 收集 aggregate 聚集
给博主来一杯卡布奇诺