Python代码如何进行重构

  介绍

这期内容当中小编将会给大家带来有关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代码如何进行重构