影刀RPA 变量命名规范:写出三个月后还看得懂的变量名

📅 2026/7/13 2:44:10
影刀RPA 变量命名规范:写出三个月后还看得懂的变量名
影刀RPA 变量命名规范写出三个月后还看得懂的变量名作者林焱什么情况用这个你有没有翻出三个月前自己写的流程看着一堆a1、temp、data2、result_final_v3的变量名发呆的经历或者接手了同事的流程打开一看变量名全是拼音缩写和数字编号完全看不懂这个人想表达什么。变量命名这件事说小了是习惯问题说大了直接影响你流程的维护成本。一个流程的生命周期可能长达一两年期间会被多次修改、被其他人接手、出Bug时需要快速定位。如果变量名一塌糊涂每次维护都要先花半小时翻译变量名。这篇文章不讲虚的直接给你的变量命名一套可执行的标准——取名有规则、缩写有字典、一看就知道是什么。怎么做第一步变量命名三要素一个好的变量名回答三个问题是什么、属于谁、什么状态。对比一下❌ 差: a — 不知道是什么 ❌ 差: data — 太泛了什么数据 ❌ 差: temp — 临时的但临时存什么 ❌ 差: result — 什么操作的结果 ✅ 好: order_amount — 订单金额 ✅ 好: daily_report_path — 日报文件路径 ✅ 好: retry_count — 重试次数 ✅ 好: login_cookie — 登录Cookie命名规则对象_属性或动作_对象。场景命名模式示例存储某个对象的属性对象_属性user_name,order_status存储数据列表对象_listproduct_list,url_list存储中间结果动作_对象parsed_data,filtered_items存储配置项config_xxxconfig_api_url,config_max_retry存储文件路径xxx_pathinput_path,output_excel_path第二步统一缩写词典全拼太长了不好读缩写太短了看不懂。关键是全流程统一。建立你自己的缩写规则并坚持使用完整词推荐缩写不推荐的缩写numbernumn, nb, nocountcntc, ctindexidxi, indmaximummaxm, mxminimumminmnmessagemsgm, messtringstrs, stparameterparamp, prmdocumentdocd, dctemporarytmpt, temp和模板缩写冲突templatetplt, tmpconfigurationcfgconf, capplicationappa, apl写一个缩写对照表放在流程的注释里# 本流程用到的缩写 # cnt count数量 # idx index索引/序号 # cfg configuration配置 # tpl template模板 # tmp temporary临时 # num number编号第三步容器变量的命名规范列表、字典、集合这类容器在命名上体现数据类型# 列表 — 用 _list 后缀order_list[]# 订单列表url_list[]# URL列表error_list[]# 错误列表# 字典 — 用 _dict 或 _map 后缀config_dict{}# 配置字典user_map{}# 用户映射{id: name}status_dict{}# 状态字典# 集合 — 用 _set 后缀processed_setset()# 已处理集合用于去重特别注意如果你的列表里存的是对象/字典名字要能表达# ❌ 模糊data_list[{name:张三,amount:100},{name:李四,amount:200}]# ✅ 清晰order_summary_list[{name:张三,amount:100},{name:李四,amount:200}]第四步布尔变量的命名布尔变量True/False用is_、has_、can_前缀is_logged_inTrue# 是否已登录has_errorFalse# 是否有错误can_retryTrue# 是否可以重试should_send_emailFalse# 是否需要发邮件is_emptyTrue# 是否为空看布尔变量名就能猜到它判断什么条件——这就是好命名的价值。第五步索引和计数器# 索引 — 用 idx 后缀明确索引的是谁page_idx0# 当前页码row_idx0# 当前行号item_idx0# 当前元素序号# 计数器 — 用 cnt 后缀明确在计什么success_cnt0# 成功计数error_cnt0# 错误计数processed_cnt0# 已处理计数total_cnt0# 总数# 金额 — 用 amount 或 _pricetotal_amount0# 总金额unit_price0# 单价第六步在影刀中的实际操作影刀的变量名可以直接用中文你也可以中英混用。推荐策略纯英文推荐通用性好变量名order_amount 变量名retry_cnt 变量名is_completed中文团队都是中国人的情况下也可以变量名订单金额 变量名重试次数 变量名是否完成不要中英混用❌ 变量名order金额 — 要么全中文要么全英文 ❌ 变量名retry次数 — 同上有什么坑坑一命名太长影响可读性现象processed_order_detail_amount_after_discount变量名30个字符写一行代码要换行才能看到头。解决变量名控制在3个单词以内。如果确实需要表达很复杂的含义说明你该拆分成多个变量了# ❌ 太长processed_order_detail_amount_after_discount100# ✅ 拆成多个变量order_detail{原始金额:120,折扣:20}final_amountorder_detail[原始金额]-order_detail[折扣]坑二用拼音替代英文现象dingdan_jine、chongshi_cishu自己写得爽别人看到死。原因拼音可能是同一个拼音对应多个汉字jin’e可能是金额也可能是名额而且中英文混写时视觉上很割裂。解决要么用全中文要么查词典用英文。不要用拼音。坑三在循环中使用无意义变量名现象foriteminorder_list:foritem2inproduct_list:foritem3insku_list:# 三层嵌套全是item谁分得清解决内层循环的变量名要体现它代表什么fororderinorder_list:forproductinproduct_list:forskuinsku_list:# 清晰明了坑四变量名和内置关键字冲突现象变量名叫list、dict、str、type、id。# ❌ 危险list[1,2,3]strhello# 之后再用list()、str()函数时会报错# ✅ 安全item_list[1,2,3]text_strhelloPython保留字不可用作变量名完整清单False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield坑五变量名大小写不一致现象同一个变量在这个Python节点叫orderAmount驼峰在那个节点叫order_amount下划线在影刀变量面板里叫OrderAmount。解决全流程统一一种风格。推荐Python社区惯例蛇形命名法全小写下划线# 统一用蛇形order_amount100retry_count0is_completedTrue总结没有哪种命名风格是绝对对的但有一种风格是绝对错的——那就是不一致。定了规则就整个流程遵守整个团队遵守。三个月后的你会感谢今天认真取名的自己。