编程时,总会遇到各种各样的变量,取一个好的变量名能够有效提高代码的可读性,而且python是一种,动态类型的语言,良好的变量名,能够在编写代码或者再次阅读代码时提高效率。

1. 变量名不要太宽泛,要有描述性

在可接受的长度内,变量名能把它所指向的内容描述的越具体越好。

BAD:day, task
GOOD:day_of_week, task_todo

这样在读到变量名的时候,就能更精确的知道变量代表的内容

2.变量名最好能让人猜出什么类型

python中常用的变量类型有布尔类型,数字类型,列表类型

1. 什么样的命名让人更容易想到这是布尔类型的值?

布尔类型的值只有两种,是或者不是,用is,has等这种非黑即白的值能够很好的表示这种类型。总之,起名的原则就是,让人读到这个变量名,觉得这个变量的值只有是或者不是。

比如:

is_valid:是否有效
has_perms: 是否有权限

2. 数字类型(int/float)的值的变量名,最好和数字相联系

比如

表示数量的单词:age(年龄) count(数量)
以id结尾的单词:user_id
加数量修饰符的命名:
length_of_name,goods_numbers,run_times

注意:不要用简单的复数来命名 apples 不如 apples_numbers 有可读性

3.列表类型和元祖类型,习惯加list后缀来表示这种变量  比如,goods_list,users_list,对于字典类型的,习惯加dict后缀来表示这种变量,比如,headers_dict,这样的话能在我们阅读代码或者使用这些变量的时候能够带来极大的方便。

4.其他类型的数据根据具体情况去命名,比如string类型,name,description,最好能够做到见形思义

3.适当使用匈牙利命名法

匈牙利命名法就是把变量的『类型』缩写,放到变量名的最前面。这里的『类型』并非指传统的变量类型,而是指那些与你代码逻辑相关的类型。

比如当你要使用一个对象goods里面的变量时,你就可以将goods.name --> g_name,goods.nums --> g_nums,这样就能知道name和nums指向的类型了

适当使用匈牙利命名法,能够很好地提高代码的可读性,但也不要滥用,让代码看起来不够整洁。

4.其他可能出现的问题

变量名尽量短,最好能够控制在2到3个单词左右

同一段代码内最好不要使用过于相似命名,比如user1,user2,user3等

变量名的前后最好保持一致性,如果在一个类里面定义了mobile,而在后面的赋值中却使用了phone,这样很容易让人引起迷惑,phon和mobile到底指的是不是同一个东西。

python里用变量命名改善代码质量的更多相关文章

  1. Python 工匠:善用变量来改善代码质量

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义上是一门『手艺 ...

  2. Python 编程语言要掌握的技能之一:善用变量来改善代码质量

    如何为变量起名 在计算机科学领域,有一句著名的格言(俏皮话): There are only two hard things in Computer Science: cache invalidati ...

  3. 你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码

    本篇文章适用语言:python,c++,Java.(其实我就是随便bb) 我们在编辑代码的时候,不免拿其他人的代码进行学习,或者将自己的代码拿给别人修改.这个时候,如何让别人快速读懂你的代码,是提升效 ...

  4. Python 工匠:编写条件分支代码的技巧

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义是一门『手艺』 ...

  5. Python学习教程(learning Python)--2.2 Python下的变量基础

    变量的基本概念,变量可以这样去理解,变量是一个值,这个值存储在计算机的内存里.以 网购为例,您在选购傻商品的时候,是在不同页面里选不同的商品,选好一件点击“放入购物车”,选完了再点击去结帐,这些商品的 ...

  6. Python学习入门基础教程(learning Python)--2.2 Python下的变量基础

    变量的基本概念,变量可以这样去理解,变量是一个值,这个值存储在计算机的内存里.以网购为例,您在选购傻商品的时候,是在不同页面里选不同的商品,选好一件点击“放入购物车”,选完了再点击去结帐,这些商品的价 ...

  7. Python变量命名规范

    模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...

  8. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  9. python的变量命名规范

    一.python变量名命名规则: 1.变量名通常由字母,数字,下划线组成; 2.数字不能作为变量名开头; 3.不能以python中的关键字命名; 4.变量名要有意义; 5.不要用汉字和拼音去命名; 6 ...

随机推荐

  1. 《JavaScript总结》js的运行机制

    首先大家都知道javascript是单线程语言. 什么是单线程呢?比如我们去车站买票,只有一个售票窗口,大家排队买票,需要前面的人买完票,后面的人才能买票. 那为什么javascript不能是多线程呢 ...

  2. [java核心外篇]__Object类与对象类型的转型

    前言 我们在之前的学习中提过很多次了,java是面向对象的,java的基础可以说是建立在类和对象上面的.然后我们又学到了类的继承,发现了在java类库中,类的继承是极为普遍的,一个类继承另一个类,就像 ...

  3. Python快速学习04:循环 & 函数

    前言 系列文章:[传送门] 也就今天认识了 LC ,很开心. 本文目录 循环 for while 中断 函数 函数定义 函数调用 for循环 Python 中的for 循环象shell 脚本里的for ...

  4. 从零开始学 Web 之 Vue.js(五)Vue的动画

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  5. kubernetes 安装kong、kong-ingress-controlor

    一.关于kong的详细内容这里不再赘述,可以查看官网. kong升级到1.0以后功能越来越完善,并切新版本的kong可以作为service-mesh使用,并可以将其作为kubernetes的ingre ...

  6. python使用协程并发

    协程 协程是一种用户态的轻量级线程,又称微线程. 协程拥有自己的寄存器上下文和栈,调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此:协程能保留上一次调 ...

  7. MyBatis源码解析(十一)——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6724223.html 1.回顾 上面的几篇解析了类型模块,在MyBatis中类型模块包含的 ...

  8. Perl和操作系统交互(一):system、exec和反引号

    调用操作系统命令:system函数 system函数可以直接让perl调用操作系统中的命令并执行. system入门示例 例如: #!/usr/bin/perl system 'date +" ...

  9. Hyperledger Fabric链码之二

    上篇文章中我们介绍了链码的概念,本文中我们将介绍Fabric下链码的编写和测试.我们会通过一个简单例子的方式来阐述链码API的使用. 链码API     每一个链码程序都必须实现一个接口Chainco ...

  10. 【转】ADO.Net对Oracle数据库的操作

    一 ADO.Net简介 [转自网络,收藏学习] 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC). 数据访问对象(DAO).远程数据对象(RDO). ActiveX数据对象(ADO ...