python click函数,python click

  python click函数,python click

  本文主要介绍Python命令行库click的具体使用,通过示例代码介绍的非常详细,对大家的学习或者工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

  00-1010 I简介iii快速启动iv总结

  

目录

 

  今天的点击是用你熟悉的方式玩命令行。命令行程序本质上是定义和处理参数,处理参数的逻辑必须与定义的参数相关。能否用函数和装饰器实现处理参数逻辑和定义参数的关联?而click就是这么用的。

  本系列文章默认使用Python 3作为解释器。

  如果你还在用Python 2,请注意两者在语法和库使用上的区别~

  

一、前言

 

  Click是一个Python包,它用尽可能少的代码创建了漂亮的命令行程序。它是高度可配置的,可以开箱即用。

  它旨在使编写命令行工具的过程变得快速而有趣,并防止由于未能实现预期的CLI API而导致的挫折。它有以下三个特点:

  自动生成任意嵌套命令有助于支持运行时延迟加载子命令。

  

二、介绍

 

  3.1 业务逻辑

  首先,定义业务逻辑。是不是觉得有点不可思议?

  无论是argparse还是docopt,业务逻辑都放在最后一步,而click放在第一步。仔细想想这种点击方式,更符合人的思维吧?不管用什么命令行框架,我们最终关心的是实现业务逻辑,剩下的就可以省了。

  下面以官方举例为例,介绍一下click的用法和哲学。假设命令行程序的输入是name和count,函数是打印指定次数的名字。

  然后在hello.py中,很容易写出下面的代码:

  def hello(计数,姓名):

   一个简单的程序,问候名字总共计数次。

  对于范围内的x(计数):

  click.echo(Hello %s!% name)

  这段代码的逻辑很简单,就是循环计数次数和使用click.echo打印名称其中,click.echo和print的功能差不多,但是功能更强大,可以很好地处理Unicode和二进制数据。

  3.2 定义参数

  显然,我们需要为count和name定义相应的参数信息。

  Count对应于命令行选项- count,它是一个数字。当没有提供参数时,我们希望它的默认值是1。

  名称对应于命令行选项名称,类型是字符串。我们希望在没有提供参数时给出提示。

  用click,可以写成这样:

  从单击导入单击

  @ click.command()@ click . option(-count ,默认=1,help=问候次数)

  @ click.option (-name ,prompt=你的名字,help=要问候的人)def hello (count,name) :在上面的例子中:

  使用decorator的方式,也就是定义参数并与处理逻辑绑定,真的很优雅。与argparse和docopt相比,少了一步绑定过程。click.command用于表示hello正在处理的命令。click.option用于定义参数选项。对于- count,default用于指定默认值。由于默认值是一个数字,这意味着- count选项的类型是一个数字。对于- name,使用prompt指定未输入此选项时的提示,并使用help指定帮助信息。click就是这样,不管是decorator的方式还是各种默认行为。

  介绍所说的那样,让人尽可能少地编写代码,让整个过程变得快速而有趣。

  3.3 代码梳理

  使用 click 的方式非常简单,我们将上文的代码汇总下,以有一个更清晰的认识:

  

# hello.py

 

  若我们指定次数和名字:

  

$ python3 hello.py --count 2 --name Eric

 

  若我们什么都不指定,则会提示输入名字,并默认输出一次:

  

$ python3 hello.py

 

  我们还可以通过 --help 参数查看自动生成的帮助信息:

  

Usage: hello.py [OPTIONS]

 

  

 

  

四、小结

 

  click 的思路非常简单,定义处理函数,通过它的装饰器来定义参数。使用装饰器的绝妙之处就在于把定义和绑定这两个步骤合为一个步骤,使得整个过程变得如丝般顺滑。

  click 除了以 Pythonic 的方式让命令行程序的实现变得更加优雅和好用外,还提供了比 argparse 和 docopt 都要强大的功能。

  到此这篇关于Python命令行库click的具体使用的文章就介绍到这了,更多相关Python命令行库click内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

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

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