python系统函数重写,python函数调用另一个函数的变量
前言
文字和图片来自网络,仅供学习交流,无商业用途。如果有任何问题,请立即联系我。
如果你有需要PS:python学习资料的伙伴,请点击以下链接自行获取。
Python只需点击免费学习资料、代码、交流答案即可参与。
编写干净、Python风格的代码尽可能容易理解,但必须简明扼要。以下是Python重构系列文章的第一部分。其他部分将继续销售。本系列着重于为什么这样做是一个好的实践,而不仅仅是教你如何去做。
1.如果合并嵌套if条件嵌套过多,代码会变得难以理解。尤其是在python中,这是因为python不使用括号来描述不同的嵌套层次。因为您需要跟踪哪些条件与哪些级别相关,所以读取多层嵌套代码会很混乱。所以要尽量减少嵌套。使用and,您可以轻松地组合两个if条件。
之前:
IFA : IFB:返回后:
If和b:返回c 2。我们必须继续寻找消除合并条件语句中重复代码的方法。上传代码是个好方法。
在某些情况下,条件语句的两个分支中的一些代码可能是相同的。这意味着代码将一直运行。重复代码必须放在条件语句之外。
if sold discount _ amount:total=sold * discount _ price label=f total 3360 { total } else 3360 total=sold * price lice
ifddiscount _ amount:total=sold * discount _ price else:total=sold * price label=f total 3360 { total } 3。当您用yield from替换for循环中的yield时,一个经常被忽略的技巧是Python的yield关键字有一个yield from对应于集合,因此使用for循环遍历集合将略微缩短代码,并删除for循环中额外的变量和精神开销。通过消除for循环,您还可以将代码的速度提高15%。
之前:
def get _ content(entry):forblockinentry . get _ blocks:yield block after:
get _ content(entry):yield from entry . get _ blocks)(4 . any)而不是for循环)的典型模式有以下条件:集合中的一只或所有眼睛可以在以下for循环中实现:
found=false for thingthings:if thing==other _ thing:found=true break python的内置函数any()和all))。
found=any(thing==other _ thingforthings)any)至少有一个元素求值为true时返回True (all),所有元素求值为True。
如果可能的话,它们也会以短路的方式执行。Any))),真的可以马上退。如果代码没有短路,性能可能会提高。
List))替换为[]以创建列表。最简单和最具python风格的方法是使用[]符号。
L=[]这与使用元素创建列表的方法是一致的,因此节省了能量。为了节省人力,您可以考虑两种不同的方式来创建列表。
L=[first , second]这还有一个好处,就是提高了性能。变化前后时间如下。
$ python 3-mtime it l=list( 5000000个循环,最好5336063.3 nsecperloop $ python 3-mtime it l=[] 20000000个循环
提升for/while循环中语句的另一种方法是从循环中检索不变语句。如果语句只设置要在循环中使用的变量,则不需要在循环中使用。因为循环本身是复杂的,所以在创建循环的时候,要考虑让它更短,更容易理解。
在本例中,city变量是在一个循环中赋值的,但在读取时不会被修改。
因为对于building Buildings 360 city= Beijing addresses . append(building . street _ address,city),提交是安全的。
城市=北京建筑3360个地址。Append (building.street _ address,city)这可以提高性能,330如果语句包含数据库调用和其他耗时的任务,这种节省可能非常重要。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。