Click 库
使用装饰器创建 CLI
Click 库 是 CoddyKit 上的免费 Python Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
什么是 Click?
Click是一个流行的第三方库,使用装饰器构建命令行界面。它只需很少的代码,就能处理解析、帮助文本、提示和颜色。请使用 pip install click安装。
import click
@click.command()
def hello():
click.echo('Hello from Click')
# hello() would run when called as a scriptclick.echo
请使用 click.echo()代替 print。它可以处理编码问题,并且能够顺畅地配合 Click 的颜色和重定向功能。
import click
@click.command()
def greet():
click.echo('Welcome!')
参数
@click.argument装饰器声明一个必需的位置参数,Click 会将其作为参数传给您的函数。
import click
@click.command()
@click.argument('name')
def hello(name):
click.echo('Hello ' + name)
选项
@click.option定义可选标志。提供一个默认值后,Click 会自动生成帮助文本并处理类型。
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings')
def hello(count):
for _ in range(count):
click.echo('Hi')
带类型的选项
Click 会根据默认值推断类型,也可以使用 type=int显式设置类型。无效输入会产生易于理解的错误信息。
import click
@click.command()
@click.option('--age', type=int, default=0)
def show(age):
click.echo('Age is ' + str(age))
布尔标志
带有 is_flag=True的选项会变成一个开关,出现时值为 True,例如 --verbose。
import click
@click.command()
@click.option('--shout', is_flag=True)
@click.argument('text')
def say(shout, text):
click.echo(text.upper() if shout else text)
交互式提示
设置 prompt=True后,如果用户没有在命令行中提供该选项,Click 就会以交互方式询问用户。
import click
@click.command()
@click.option('--name', prompt='Your name')
def hello(name):
click.echo('Hello ' + name)
命令组
@click.group会创建一个保存子命令的父命令,相当于 argparse 中的子解析器。子命令通过 @cli.command()附加到父命令上。
import click
@click.group()
def cli():
pass
@cli.command()
def start():
click.echo('starting')
@cli.command()
def stop():
click.echo('stopping')
彩色输出
click.style会为文本添加颜色和样式,click.secho则在一次调用中结合输出和样式处理。
import click
@click.command()
def status():
click.secho('OK', fg='green', bold=True)
click.secho('Error', fg='red')
确认与退出
click.confirm会提出是或否的问题,抛出 click.Abort或直接返回都可以干净地结束命令。
import click
@click.command()
def delete():
if click.confirm('Are you sure?'):
click.echo('deleted')
else:
click.echo('cancelled')
argparse 与 Click
argparse内置于 Python 中,非常适合简单工具。Click需要额外安装,但对于较大的 CLI,它开箱即提供更简洁的装饰器风格、嵌套命令组、交互式提示和颜色支持。
import click
@click.command()
@click.argument('items', nargs=-1)
def show(items):
for item in items:
click.echo(item)
快速检查
测试您对 Click 的理解。
回顾
您学会了Click 库:
- 使用
@click.command、@click.argument和@click.option装饰器定义 CLI。 click.echo和click.secho用于输出,并可选择使用颜色。@click.group用于构建嵌套子命令;提示和确认功能开箱即用。- 它是通过 pip 安装的外部依赖。
下一步:使用 rich 设置终端输出样式。
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 76
- 课程
- 320
常见问题解答
「Click 库」课时是免费的吗?
是的 — 「Click 库」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「Click 库」这节课中我会学到什么?
使用装饰器创建 CLI 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Click 库」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- argparse 基础
- 子命令与选项
- Click 库
- 丰富的终端输出