python中的变量命名规则
大家好,又见面了,我是你们的朋友全栈君。
There are only two hard things in Computer Science: cache invalidation and naming things. 在计算机科学领域只有两件难事:缓存失效 和 给东西起名字
变量用的好或不好,和代码质量有着非常重要的联系,合理的使用变量,可以让你的代码可读性更高并且更加简洁。
python中的变量命名规则
- 1.变量命名
- 2. 变量命名的描述性
- 3.变量名尽量短,但是不要太短
- 4.合理使用变量
- 5. 变量定义尽量靠近使用
- 6. 合理使用namedtuple/dict
- 6. 控制单个函数内的变量数量
- 7. 删除掉没用的变量
- 8. 定义临时变量提高可读性
- 9. The Zen of Python
1.变量命名
1)命名的规范性
变量名可以包括字母、数字、下划线,但是数字不能做为开头。
系统关键字不能做变量名使用
除了下划线之个,其它符号不能做为变量名使用 !
Python的变量名是除分大小写的
2)编程语言常用驼峰命名法
大驼峰:每一个单词的首字母都大写 FirstName LastName
小驼峰:第一个单词以小写字母开始,后续单词的首字母大写 firstName lastName
但是在python中一般使用小驼峰加下划线的方式
- has_error
- is_person
2. 变量命名的描述性
在接受范围内,变量名所描述的内容越精准越好。
- BAD: day, host, cards, temp
- GOOD: day_of_week, hosts_to_reboot, expired_cards
变量名能让人猜出类型。
例如: Bool 类型
- is_user : 是否是用户
例如: int/float 类型
- port:端口号
- age:年龄
这些很直观的能让人猜出类型。
注意: 不要使用复数来表示一个 int 类型变量,比如 apples,最好用 number_of_apples来替代。
3.变量名尽量短,但是不要太短
一个好的变量名,长度应该控制在两到三个单词左右
例如,person_index
同一段代码内不要使用过于相似的变量名,比如同时出现 users、users1、 user3。
不要使用带否定含义的变量名,用 is_special 代替 is_not_normal。
4.合理使用变量
同一个变量名指代的变量类型,也需要保持一致性。
在一个函数中,一个变量名叫做 photo, 那么在其他地方就不要改成image。
5. 变量定义尽量靠近使用
刚开始学习编程时,我们习惯把定义的变量放在开头,或一些函数最前面。如下
def get_name():
students = []
teachers = []这样的方式虽然看起来很简洁,但是对代码可读性没有帮助,更好的做法是,让变量定义尽量靠近使用。
6. 合理使用namedtuple/dict
Python中的函数可以返回多个值,如果某一天我们想让函数再多返回一个值怎么办呢?
#之前
def get_name():
return student, teacher
#现在
def get_name():
return student, teacher, parentnamedtuple/dict 此时可以派上用场
#1. 使用dict
def get_name():
return {
'student': student,
'teacher':teacher,
'parent' :parent
}
names_dict = get_name()
# 2. 使用 namedtuple
from collections import namedtuple
Names = namedtuple("Names", ['student', 'teacher', 'parent'])
def get_name():
return Names(
student = student,
teacher = teacher,
parent = parent
)
names = get_name()但是这样不能像之前一样,每一次解包多变量接受函数返回值。
6. 控制单个函数内的变量数量
当某一函数过长时,或者包含太多变量时,请及时把它拆分成多个小函数。
7. 删除掉没用的变量
在一个函数中,如果某一个定义的变量没有被用到,请及时删除它。
8. 定义临时变量提高可读性
if student.is_active and (student.sex == 'female'):
student.add_tolist()
return
#把上面的例子变成如下
student_is_eligible = student.is_active and (student.sex == 'female')
if student_is_eligible:
student.add_tolist()
return需要合理运用临时定义对象,把不必要的东西赋值成临时变量反而会让代码显得啰嗦!
9. The Zen of Python
最后分享一下 Zen of Python 准则。
漂亮总比难看好。 显性比隐性好。 简单比复杂好。 复杂比复杂好。 平的比嵌套的好。 疏比密好。 可读性。 特殊情况并不特别到足以打破规则。 尽管实用性胜过纯洁。 错误不应该悄无声息地过去。 除非显式地沉默。 面对模棱两可,拒绝猜测的诱惑。 应该有一种——最好只有一种——明显的方法来做这件事。 除非你是荷兰人,否则这种方式一开始可能并不明显。 现在做总比不做好。 虽然永远不做总是比现在好。 如果实现很难解释,那就不是一个好主意。 如果实现易于解释,那么它可能是个好主意。 名称空间是一个很棒的主意——让我们做更多这样的事情吧!
reference: python工匠
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138509.html原文链接:https://javaforall.cn
相关文章
- Python进阶43-drf框架(五)
- 用Python的好处
- mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」
- javascript typescript_typescript python
- 8000 字 Python 数据可视化实操指南
- (更新时间)2021年3月26日 python基础知识(模块制作)[通俗易懂]
- Python项目49-用户验证短信接口(可劲撸)
- Python-drf前戏38.1-前端Vue01
- 在树莓派中使用 MicroPython 接入 MQTT
- jupyter和python的关系_jupyter notebook和python
- python报错invalid syntax_fatal python error
- 【Python基础】Python简介
- 提高数据科学效率的 8 个Python神库!
- python 进制转换[通俗易懂]
- 使用python进行词频分析
- Python进阶42-drf框架(四)
- Python计算中位数_用频率直方图求中位数
- Easy Games With Python and Pygame(一)- Pygame Quickstart
- python爬取图床壁纸
- 用 Python 控制了室友电脑的开机密码