代码格调 码住!12 Python 种消费级
在上班中,咱们编写的代码尽或许地易于了解,这象征着:
因此咱们须要始终精进自己的编码才干,以顺应更多的要求。
上方就跟大家分享一下以下可谓一绝的消费级 Python 代码格调。
1 经常使用括号解包元组
以下是一些惯例元组的解包:
在消费级代码中,咱们通常不经常使用诸如 a 或 b
因此,咱们可以经常使用括号来协助元组解包,如下所示:
请留意,经过这种方式,咱们的元组解包可以容纳更长(且更具形容性)的变量名。
一个上班中的例子:
2 多行列表推导式
反常的列表推导式如下所示:
在消费代码中,咱们通常不经常使用变量名 i
我将如何重写上述代码:
一个上班中的例子:
3 经常使用括号组合字符串
消费级字符串通常太简短,无法放在一行中。因此咱们经常使用括号将它们组合起来。
留意:在括号内,字符串文字(经常使用引号)会智能相加,咱们不须要经常使用 + 运算符来口头此操作
4 经常使用括号启动多行方法链接
反常方法链接:
在消费级代码中,方法称号大少数时刻都更长,并且咱们将更多方法链接在一同。
咱们经常使用括号将一切这些内容分红多行,而不是缩短任何方法称号或变量称号。
请留意,假设咱们在括号内启动方法链接,则不须要经常使用 \ 字符启动显式换行
5 索引嵌套字典
索引嵌套字典的反常方式:
这里存在一些疑问:
因此,咱们将其分红多行,如下所示:
假设这还不够的话,咱们将索引代码分红更多行:
或许假设咱们依然发现这很难浏览,咱们可以这样做:
6 编写可读且消息丰盛的函数
通常,新手是这样编写函数的:
蕴含此类代码的 PR 很或许会被拒绝
以下是咱们在消费级 Python 代码中编写函数的方法
7 尽或许缩小缩进级别
这是一个 for 循环。假设条件满足,咱们就口头某些操作。
咱们重写这个代码,同时缩小do_something()的缩进级别。
请留意, do_something()的缩进级别已缩小了 1 级,只有经常使用 if not condition而不是if condition。
在消费级代码中,缩进级别或许会更多,假设缩进太多,咱们的代码就会变得烦人且难以浏览。因此,这个技巧可以让咱们的代码更整洁、更易于浏览,
8 带括号的布尔条件
这是一个经常使用and关键字衔接起来的蕴含 3 个条件的 if 语句。
在消费级代码中,条件会变得更长,并且或许会有更多条件。因此,咱们可以处置这个疑问的一种方法是将这个渺小的条件重构为一个函数。
或许,假设咱们以为没有必要为此编写新函数,则可以经常使用括号编写条件语句。
这样,咱们就不会自愿为这一个条件语句编写一个新的函数或变量,同时咱们还能坚持它的整洁和可读性。
有时我或许实践上更青睐这样写,虽然这只是基于团体喜好:
9 防止 None 值
访问对象某些嵌套属性的个别代码。
此代码中的一些疑问或许会造成咱们的 PR 被拒绝:
在消费级代码中,咱们须要踊跃防范此类状况。上方是我重写此代码的方法。
Python 中的 and 和 or
这样,咱们就有了额外的包全,防止dog或dog.owner为 None 值的或许性。
10 防止迭代 None 值
以下是咱们如何迭代某些可迭代对象(例如列表、字典、元组等)
这样做的一个疑问是,它不能防止 mylist 为 None —— 假设 mylist
以下是我对这段代码的改良:
表白式 “mylist or None”
因此,假设 mylist 为 None,则表白式 “mylist or None”
11 外部函数以 _ 扫尾
这是一个示例类。在这里,run方法经常使用其余方法 clean 和 transform
在消费级代码中,咱们宿愿尽或许明白,因此尝试区格外部和外部方法。
依照惯例,外部方法以下划线 _ 扫尾是一种很好的做法
假设咱们重写上方的代码,咱们会获取:
留意:在方法名前面增加下划线并不会将其暗藏在其余类和对象中。理想上,配置上没有区别。
12 罕用配置装璜器
这是一个蕴含 3 个函数的类,每个函数口头不同的操作。然而,请留意,不同函数之间的步骤相似 — try-except 块以及日志记载配置。
缩小重复代码量的一个很好的做法是编写一个蕴含罕用配置的装璜函数。
这样,假设咱们想要降级公共代码(try-except 和日志代码),咱们不再须要在 3 个中央降级它们 - 咱们只有要降级蕴含公共配置的装璜器代码。