各人都说好用的 Python 呼吁行库:click
副问题[/!--empirenews.page--]
【线下技能沙龙】11月23日,多云期间开启企业营业新高度,安详怎样与时俱进?
一、媒介在本系列前面几篇文章中,我们别离先容了 argparse 和 docopt 的首要成果和用法。它们各具特色,都能精彩地完成呼吁利用命。argparse 是面向进程的,必要先配置理会器,再界说参数,再理会呼吁行,最后实现营业逻辑。而 docopt 先用声明式的语法界说出参数,再进程式地理会呼吁行和实现营业逻辑。在一些人看来,这些方法都不足优雅。 目前天要先容的 click[2] 则是用一种你很熟知的方法来玩转呼吁行。呼吁行措施本质上是界说参数和处理赏罚参数,而处理赏罚参数的逻辑必然是与所界说的参数有关联的。那可不行以用函数和装饰器来实现处理赏罚参数逻辑与界说参数的关联呢?而 click 正好就是以这种方法来行使的。 本系列文章默认行使 Python 3 作为表明器举办讲授。若你仍在行使 Python 2,请留意两者之间语法和库的行使差别哦~ 二、先容click是一个以尽也许少的代码、以组合的方法建设美妙的呼吁行措施的 Python 包。它有很高的可设置性,同时也能开箱即用。 它旨在让编写呼吁行器材的进程既快速又风趣,还能防备因为无法实现预期的 CLI API 所发生挫败感。它有如下三个特点:
三、快速开始3.1 营业逻辑 起首界说营业逻辑,是不是感受到有些难以置信呢? 岂论是 argparse 照旧 docopt,营业逻辑都是被放在最后一步,但 click 却是放在第一步。细想想 click 的这种方法才更切合人的思想吧?岂论用什么呼吁行框架,我们最终体谅的就是实现营业逻辑,其余的能省则省。 我们以官方示例为例,来先容 click 的用法和哲学。假设呼吁行措施的输入是 name 和 count,成果是打印指定次数的名字。 那么在 hello.py 中,很轻易写出如下代码:
这段代码的逻辑很简朴,就是轮回 count 次,行使 click.echo 打印 name。个中,click.echo 和 print 的浸染相似,但成果越发强盛,能处理赏罚好 Unicode 和 二进制数据的环境。 3.2 界说参数 很显然,我们必要针对 count 和 name 来界说它们所对应的参数信息。
行使 click,就可以写成下面这样:
在上面的示例中:
岂论是装饰器的方法、照旧各类默认举动,click 都是像它的先容所说的那样,让人尽也许少地编写代码,让整个进程变得快速而风趣。 3.3 代码梳理 行使 click 的方法很是简朴,我们将上文的代码汇总下,以有一个更清楚的熟悉:
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |