Alt Komutlar ve Seçenekler
Karmaşık CLI'lar oluşturun
Alt Komutlar ve Seçenekler, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Alt Komutlar Neden Kullanılır?
git gibi araçlarda alt komutlar bulunur: git add, git commit. argparse bunu, her alt komutun kendi bağımsız değişkenlerine sahip olduğu alt ayrıştırıcılar aracılığıyla destekler.
import argparse
parser = argparse.ArgumentParser(prog='tool')
sub = parser.add_subparsers(dest='command')
print('subparsers ready')Alt Ayrıştırıcılar Ekleme
add_subparsers, add_parser yöntemiyle her alt komutu oluşturan bir nesne döndürür. dest, hangisinin seçildiğini saklar.
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)Alt Komutlara Özel Bağımsız Değişkenler
Her alt ayrıştırıcı kendi bağımsız değişkenlerini tanımlayabilir. Buradaki add alt komutu bir ad alırken list hiçbir şey almaz.
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)Komuta Göre Yönlendirme
Ayrıştırma işleminden sonra doğru mantığı çalıştırmak için args.command değerine göre dallanın.
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')İşleyiciler için set_defaults
Temiz bir yaklaşım, her alt ayrıştırıcıya set_defaults(func=...) ile bir işlev bağlamak ve ardından args.func(args) çağrısını yapmaktır.
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)Üst Ayrıştırıcılarla Ortak Seçenekler
Bir üst ayrıştırıcı, birden çok alt komutta ortak olan seçenekleri barındırarak tekrarları önler. parents=[base] ve add_help=False iletin.
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)Seçenek Başına Varsayılan Değerler
Alt komut seçeneklerinin de tıpkı üst düzey bağımsız değişkenler gibi kendi varsayılan değerleri ve türleri olabilir.
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)Tekrarlanan Seçenekleri Ekleme
action='append', bir seçeneğin birden çok kez verilmesini ve her değerin bir listede toplanmasını sağlar.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--tag', action='append', default=[])
args = parser.parse_args(['--tag', 'a', '--tag', 'b'])
print(args.tag)Seçenekleri Sayma
action='count', bir seçeneğin kaç kez göründüğünü sayar; bu, klasik -vvv ayrıntı düzeyi kalıbıdır.
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)İki Komutlu Bir Araç
Alt komutları, işleyicileri ve ortak seçenekleri birleştirmek, yapılandırılmış ve birden çok komuta sahip bir CLI oluşturur.
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)Zorunlu Alt Komut
Kullanıcının bir komut seçmesini zorunlu kılmak için alt ayrıştırıcılarda required=True ayarlayın; aksi takdirde argparse hata verir.
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)Kısa Test
Alt komutlar ve seçenekler konusundaki anlayışınızı test edin.
Özet
Alt komutları ve seçenekleri öğrendiniz:
add_subparsersveadd_parser, birden çok komuta sahip araçlar oluşturur.set_defaults(func=...), işleyicilere yönlendirme yapar.- Üst ayrıştırıcılar ortak seçenekleri paylaşır.
appendvecounteylemleri tekrarlanan seçenekleri yönetir.
Sıradaki konu: dekoratör tabanlı CLI'lar için Click kitaplığı.
Sıkça Sorulan Sorular
“Alt Komutlar ve Seçenekler” dersi ücretsiz mi?
Evet — “Alt Komutlar ve Seçenekler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Alt Komutlar ve Seçenekler” dersinde ne öğreneceğim?
Karmaşık CLI'lar oluşturun Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Alt Komutlar ve Seçenekler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- argparse Temelleri
- Alt Komutlar ve Seçenekler
- Click Kütüphanesi
- Zengin Terminal Çıktısı