Python Academy · บทเรียน

ไลบรารี Click

สร้าง CLI ด้วยดีคอเรเตอร์

บทเรียน 3 จาก 413 ขั้นตอน

ไลบรารี Click เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน 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 script

click.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 มีมาให้ในตัวและเหมาะสำหรับเครื่องมือง่าย ๆ ส่วน 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

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
76
บทเรียน
320

คำถามที่พบบ่อย

บทเรียน “ไลบรารี Click” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ไลบรารี Click” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ไลบรารี Click”

สร้าง CLI ด้วยดีคอเรเตอร์ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ไลบรารี Click” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน argparse
  2. คำสั่งย่อยและตัวเลือก
  3. ไลบรารี Click
  4. ผลลัพธ์เทอร์มินัลแบบสวยงาม
← กลับไปที่ Python Academy