0Pricing
Python Academy · Pelajaran

Subperintah dan Opsi

Bangun CLI yang kompleks

Subperintah dan Opsi adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Mengapa Subperintah?

Alat seperti git memiliki subperintah: git add, git commit. argparse mendukungnya melalui subparser, yang memungkinkan setiap subperintah memiliki argumennya sendiri.

import argparse

parser = argparse.ArgumentParser(prog='tool')
sub = parser.add_subparsers(dest='command')
print('subparsers ready')

Menambahkan Subparser

add_subparsers mengembalikan objek yang metode add_parser-nya membuat setiap subperintah. dest menyimpan subperintah yang dipilih.

import argparse

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest='command')
sub.add_parser('start')
sub.add_parser('stop')
args = parser.parse_args(['start'])
print('command:', args.command)

Argumen untuk Setiap Subperintah

Setiap subparser dapat mendefinisikan argumennya sendiri. Subperintah add di sini menerima sebuah nama; list tidak menerima argumen.

import argparse

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest='command')
p_add = sub.add_parser('add')
p_add.add_argument('name')
sub.add_parser('list')
args = parser.parse_args(['add', 'milk'])
print(args.command, args.name)

Menentukan Tindakan Berdasarkan Perintah

Setelah penguraian, buat percabangan berdasarkan args.command untuk menjalankan logika yang tepat.

import argparse

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest='command')
p_add = sub.add_parser('add')
p_add.add_argument('item')
sub.add_parser('clear')

args = parser.parse_args(['add', 'eggs'])
if args.command == 'add':
    print('adding', args.item)
elif args.command == 'clear':
    print('clearing all')

set_defaults untuk Penangan

Pola yang rapi adalah memasangkan fungsi dengan setiap subparser menggunakan set_defaults(func=...), lalu memanggil args.func(args).

import argparse

def do_hi(args):
    print('hi', args.who)

parser = argparse.ArgumentParser()
sub = parser.add_subparsers()
p = sub.add_parser('hi')
p.add_argument('who')
p.set_defaults(func=do_hi)

args = parser.parse_args(['hi', 'Ana'])
args.func(args)

Opsi Bersama melalui Parser Induk

Parser induk menyimpan opsi yang sama untuk beberapa subperintah sehingga tidak perlu ditulis berulang kali. Berikan parents=[base] dan add_help=False.

import argparse

base = argparse.ArgumentParser(add_help=False)
base.add_argument('--verbose', action='store_true')

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest='cmd')
sub.add_parser('run', parents=[base])
args = parser.parse_args(['run', '--verbose'])
print(args.cmd, args.verbose)

Nilai Bawaan untuk Setiap Opsi

Opsi subperintah dapat memiliki nilai bawaan dan jenisnya sendiri, sama seperti argumen tingkat atas.

import argparse

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest='cmd')
p = sub.add_parser('scale')
p.add_argument('--factor', type=float, default=1.0)
args = parser.parse_args(['scale'])
print('factor:', args.factor)

Menambahkan Opsi yang Diulang

action='append' memungkinkan sebuah bendera diberikan beberapa kali dengan mengumpulkan setiap nilai ke dalam daftar.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--tag', action='append', default=[])
args = parser.parse_args(['--tag', 'a', '--tag', 'b'])
print(args.tag)

Menghitung Bendera

action='count' menghitung berapa kali sebuah bendera muncul, seperti pola klasik -vvv untuk tingkat kerincian.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-v', action='count', default=0)
args = parser.parse_args(['-v', '-v', '-v'])
print('verbosity level:', args.v)

Alat dengan Dua Perintah

Menggabungkan subperintah, penangan, dan opsi bersama menghasilkan CLI multi-perintah yang terstruktur.

import argparse

def add(args):
    print('add', args.item, 'qty', args.qty)

def remove(args):
    print('remove', args.item)

parser = argparse.ArgumentParser()
sub = parser.add_subparsers()
pa = sub.add_parser('add')
pa.add_argument('item')
pa.add_argument('--qty', type=int, default=1)
pa.set_defaults(func=add)
pr = sub.add_parser('remove')
pr.add_argument('item')
pr.set_defaults(func=remove)

args = parser.parse_args(['add', 'pen', '--qty', '3'])
args.func(args)

Subperintah Wajib

Tetapkan required=True pada subparser agar pengguna wajib memilih sebuah perintah; jika tidak, argparse akan menampilkan kesalahan.

import argparse

parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest='cmd', required=True)
sub.add_parser('go')
args = parser.parse_args(['go'])
print('chosen:', args.cmd)

Pemeriksaan Singkat

Uji pemahaman Anda tentang subperintah dan opsi.

Ringkasan

Anda telah mempelajari subperintah dan opsi:

  • add_subparsers dan add_parser membuat alat multi-perintah.
  • set_defaults(func=...) meneruskan proses ke penangan.
  • Parser induk berbagi opsi yang umum.
  • Tindakan append dan count menangani bendera yang diulang.

Berikutnya: pustaka Click untuk CLI berbasis dekorator.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Subperintah dan Opsi” gratis?

Ya — teks lengkap “Subperintah dan Opsi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Subperintah dan Opsi”?

Bangun CLI yang kompleks Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Subperintah dan Opsi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar argparse
  2. Subperintah dan Opsi
  3. Pustaka Click
  4. Output Terminal yang Kaya
← Kembali ke Python Academy