python什么语句是最简单的条件语句,python中条件语句的用法

  python什么语句是最简单的条件语句,python中条件语句的用法

  花下猫语:在日常代码中,我们总会遇到很多if.elif.else的条件分支选择问题,说实话,我更喜欢大部分情况下老老实实的写if.elif,把每个分支下的内容提取出来作为独立的函数。结构清晰,意图明确,写和读都非常方便。但是在一些特殊情况下,可以通过更优雅的格式(比如之前分享的《不使用 if-elif 语句,如何优雅地判断某个数字所属的等级?》或者今天分享的这篇文章)来扩展代码编写的思路。

  今天在Github上看EdgeDB[1]的代码,发现在处理大量if.elif.else判断时,用了一个非常聪明的装饰器。我们来看看这个方法是什么样的。

  今天正好是双十一。假设你做了一个函数,根据一个用户的级别来判断他能得到的折扣。的常见if.elif .格式如下:

  Get _ discount (level): iflevel==1:批量计算代码 discount=0.1eliflevel==2:批量计算代码 discount=0.2 elif level==:discount=0.360 discount=32-5 * 0.1 else:return level error return discount这么大数量的if。埃利夫。代码很难看,很难理解,而且每个if里面都有很多这样的函数,会拉很长时间。

  有些学生知道,你可以用字典重写这个过长的if判断:

  DEF _ LEVEL _ 1(大量计算代码(Discount=0.1 return Discount _ LEVEL _ 2):)大量计算代码)Discount=0.2 retre 0.3 return discountdefparse _ LEVEL _ 4(:批量计算代码 DiscountDefparse _ level3360 批量计算代码 0 批量计算代码 Discount=32-5 * 0.1 return Discount Discount Discount 2:parse _ LEVEL _ 2,3: parse _ level _ 3,4333333:

  @ value _ dispatchedefget _ discount(level):返回级别错误(@ get _ discount . register(1)1)DEF parse _ level _ 1:海量计算代码 discount=0.1 return discount @ get _ discount . register(2)DEF parse _ level _ 2(level))。批量计算代码 discount=0.2 return discount @ get _ discount . register(3)def parse _ level _ 3(level))。批量计算代码 discount=0.3 return discount @ get _ discount . register(4)def parse _ level _ 4(level))。360 批量计算代码 discount=0.4 return discount @ get _ discount . register(5)def parse _ level _ 5)level)3360 批量计算代码

  :大量计算代码 discount=3 2-5 * 0.1 return discount=get _ discount(3)print(f 三级用户,得到的折扣为:{discount} )运行效果如下图所示:

  这样写起来比用字典更直观,比直接用if更简洁. 否则如果.

  那么,这个decorator value_dispatch是如何实现的呢?密码隐藏在这个开源项目EdgeDB的源代码[2]中。核心代码只有20多行:

  而且,它还可以实现或查询。例如,当用户级别为2或3时,折扣为0.2,则代码可以写成:

  @ get _ discount . register(2)@ get _ discount . register(3)def parse _ level _ 2(level):大量计算代码 discount=0.2returndiscount运行效果如下图所示:

  目前这段代码只能实现相等查询。但其实只要稍微修改一下这段代码,就可以实现大于、小于、大于等于、小于等于、不等于、in等判断。如果你有兴趣,请在文章下方留言,明天我们将讨论如何对这段代码进行转换,以实现更符合逻辑的判断。

  参考文献

  [1]EdgeDB:https://github . com/EdgeDB/EdgeDB

  [2]源代码:https://github.com/edgedb/edgedb/blob/master/edb/common/value _调度. py

  推荐阅读:入门:零基础学习Python最全的问题零基础学习8个月的Python 实用项目学习Python就是这条捷径。干货:爬豆瓣短评,年度NBA最佳球员分析《后来的我们》 38 从千呼万唤始出来到口碑相传!唐3令人失望笑傲新倚天屠龙记答谜王用Python制作小姐姐海量素描碟中谍这么火,我用机器学习做了一个迷你推荐系统。电影乐趣:弹球游戏九宫格美丽花朵两百行Python 《天天酷跑》游戏!AI:会做诗的机器人给图片上色预测收入碟中谍这么火,我用机器学习做了一个迷你推荐系统电影小工具:Pdf转Word,轻松搞定表格和水印!一键将html页面保存为pdf!再见PDF提取费!用90行代码打造最强PDF转换器,对word、PPT、excel、markdown、html进行一键转换做一个钉钉低价票提醒! 60行代码做了一个语音壁纸切换器天天看小姐姐!年度爆款文案

  1).卧槽!用Python把Pdf转换成Word很简单!

  2).学Python真香!我做了一个100行代码的网站,帮人PS旅游图片,赚个鸡腿吃。

  3).首映过亿,风靡全网。我分析了《乘风破浪的姐姐》,发现了这些秘密。

  4).80行代码!用Python制作哆啦a梦

  5).你必须掌握的20个python代码,短小精悍,用处无穷。

  6).30套巨蟒奇形怪状技能

  7).我总结了80页《菜鸟学Python精选干货.pdf》,都是干货。

  8).再见Python!我要去学围棋了!200字深度分析!

  9).发现一个舔狗福利!这个Python爬虫神器太酷了,自动下载女生图片。

  点阅读原文,看200个Python案例!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: