介绍 1。如果合并嵌套的条件
这期内容当中小编将会给大家带来有关Python代码如何进行重构,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1。如果合并嵌套的条件
太多的嵌套会使代码难以理解,这在Python中尤为如此,因为Python没有括号来帮助区隔不同的嵌套级别。
阅读深度嵌套的代码容易让人烦躁,因为你必须理清哪些条件属于哪一级。因此,我们应尽可能减少嵌套,如果两个条件可以用,合在一起,会比嵌套更易读。
合并之前:
如果: 如果b: 返回c
合并后:
如果出售比;DISCOUNT_AMOUNT: 总=* DISCOUNT_PRICE出售 标签=f # 39;总:{总}& # 39; 其他:=卖*的总价格问题 标签=f # 39;总:{总}& # 39;
通过将对标签变量赋值移到到条件之外,我们删除了重复的代码行,并明确了条件实际控制的内容,就是计算。
如果出售比;DISCOUNT_AMOUNT: 总=* DISCOUNT_PRICE出售 其他:=卖*的总价格问题 标签=f # 39;总:{总}& # 39;
3。将内部循环中的收益率替换为收益率从
经常忽略的一个小窍门是Python的收益率关键字有对应的为集合准备的收益率。因此无需使用的循环遍历集合。这使代码变短,并删除对中的额外变量。而且消除对循环后,收益率从使程序运行效率提高约15%。
重构前:
def get_content(条目): 块的entry.get_blocks (): 收益率块
重构后:
def get_content(条目): 收益率从entry.get_blocks ()
4。使用任何()而不是用于循环
常见的模式是,我们需要查找是否集合中的一个或多个项符合某些条件。这可以通过对循环完成,例如:
=False 的事情: 如果东西==other_thing: 发现=True 打破
更简洁的方法,是使用Python的任何()和()内置函数,来清楚地显示代码的意图。
x =, [] x=[& # 39;第一个# 39;& # 39;第二# 39;]
这样做有额外的优点:是一个很好的改进程序性能的方法。
以下是更改之前和之后的时间对比:
美元python3时间- m“x=列表()“; 5000000循环,最好的5:每循环63.3 nsec
美元python3时间- m“x=[]“; 20000000循环,最好的5:每循环15.8 nsec
同样的原因和性能表现,使用{}替代dict ()。
6。将重复执行的语句移出/而循环
将“不变的“语句从循环中移出。如果某条语句只是设置了一些变量供循环使用,则不需要在循环中。循环本身就是复杂的,因此在编写循环时,应牢记,使其更短,更容易理解。
在此示例中,城市变量在循环中赋值,但它只读取且不更改。
建筑的建筑:=& # 39;城市伦敦# 39; addresses.append(建筑。street_address、城市)
因此,将其移出是安全的,这更清楚地说明,相同的城市值将应用于每个建筑变量。
Python代码如何进行重构