İlan

Click komut satırı arabirimleri yazmak için bir Python paketidir. Sizin için güzel belgeler üretir ve tek bir kod satırı kadar komut satırı arabirimleri oluşturmanıza olanak tanır. Kısacası: Harikaydı ve programlarınızı bir üst seviyeye taşımanıza yardımcı olabilir.

Python projelerinizi canlandırmak için bunu nasıl kullanabilirsiniz?

Tıklamadan Komut Satırı Programları Yazma

Tıklama kullanmadan komut satırı programları yazmak mümkündür, ancak bunu yapmak daha fazla çaba ve daha fazla kod gerektirir. Komut satırı bağımsız değişkenlerini ayrıştırmanız, doğrulama gerçekleştirmeniz, farklı bağımsız değişkenleri işlemek için mantık geliştirmeniz ve özel bir yardım menüsü oluşturmanız gerekir. Yeni bir seçenek eklemek ister misiniz? O zaman yardım işlevinizi değiştireceksiniz.

Kendi kodunuzu yazmanın yanlış bir yanı yoktur ve bunu yapmak Python'u öğrenmenin harika bir yoludur, ancak Click “Kendinizi Tekrar Etmeyin” (KURU) ilkelerini izlemenizi sağlar. Tıklama olmadan, hassas olan ve herhangi bir değişiklik olduğunda çok fazla bakım gerektiren bir kod yazacaksınız.

instagram viewer

İşte Click olmadan kodlanmış basit bir komut satırı arayüzü:

ithalat sistemi. import random def do_work (): Komut satırı kullanımını yönetme işlevi args = sys.argv args = args [1:] # Args öğesinin ilk öğesi, len (args) == 0 ise dosya adıdır: print ('içinde herhangi bir komut geçmediniz!') else: a in args için: if a == '--help': print ('Temel komut satırı programı') print ('Seçenekler:') print ('- -help -> göster bu temel yardım menüsü. ') print (' --monty -> Monty Python alıntısını göster. ') print (' --veg -> rastgele bir sebze göster ') elif a ==' --monty ': print (' Bu nedir, sonra? "Romanes eunt domus"? İnsanlar Romanlar çağırdılar, gidiyorlar mı? ”) Elif a == '--veg': print (random.choice (['Havuç', 'Patates', 'Şalgam']])): başka (print. ') eğer __name__ ==' __main__ 'ise: do_work ()
Python komut satırı arabirimi örneği

Python'un bu 27 satırı iyi çalışıyor, ancak çok kırılgan. Programınızda yaptığınız herhangi bir değişiklik, değiştirmek için diğer birçok destek koduna ihtiyaç duyacaktır. Bağımsız değişken adını değiştirirseniz yardım bilgilerini güncellemeniz gerekir. Bu kod kolayca kontrolden çıkabilir.

İşte Click ile aynı mantık:

içe aktarma tıklaması. rasgele içe aktar @ click.command () @ click.option ('- monty', default = False, help = 'Monty Python alıntısını göster.') @ click.option ('- veg', default = False, help = 'Rastgele bir sebze göster.') def do_work (monty, veg): Temel Tıklama örneği monty: print ('Bu nedir, o zaman? "Romanes eunt domus"? İnsanlar Romanlar çağırdılar, eve mi gidiyorlar? ') Sebze ise: print (random.choice ([' Carrot ',' Potato ',' Turnip '])) __name__ ==' __main__ ': do_work ()

Bu Click örneği aynı mantığı 16 kod satırında uygular. Bağımsız değişkenler sizin için ayrıştırılır ve yardım ekranı oluşturulur:

Python Tıklama otomatik olarak oluşturulan yardım ekranı

Bu temel karşılaştırma, Click gibi programları kullanarak ne kadar zaman ve emek tasarrufu yapabileceğinizi gösterir. Komut satırı arabirimi son kullanıcıyla aynı gibi görünse de, temeldeki kod daha basittir ve çok fazla zaman kodlaması kaydedersiniz. Gelecekte yazacağınız değişiklikler veya güncellemeler de önemli geliştirme sürelerinde artışlar görecektir.

Başlarken Python için Tıklayın

Tıklama'yı kullanmadan önce aşağıdakileri yapmak isteyebilirsiniz: sanal ortam yapılandır Python Sanal Ortamını Nasıl Kullanacağınızı Öğreninİster deneyimli bir Python geliştiricisi olun, ister yeni başlıyor olun, herhangi bir Python projesi için sanal ortamın nasıl kurulacağını öğrenmek önemlidir. Daha fazla oku . Bu, Python paketlerinizin sistem Python veya üzerinde çalışabileceğiniz diğer projelerle çakışmasını durduracaktır. Ayrıca yapabilirdin tarayıcınızda Python'u deneyin Bu Ücretsiz Çevrimiçi İnteraktif Kabuklarla Tarayıcınızda Python'u DeneyinBu Python örneklerini inceliyor veya dizilerin ve listelerin temellerini gözden geçiriyor olun, kodu doğrudan tarayıcınızda test edebilirsiniz. İşte bulduğumuz en iyi çevrimiçi Python tercümanları. Daha fazla oku Python ve Click ile oynamak istiyorsanız.

Son olarak, Python sürüm 3'ü çalıştırdığınızdan emin olun. Click with Python sürüm 2'yi kullanmak mümkündür, ancak bu örnekler Python 3'te verilmiştir. Hakkında daha fazla bilgi edinin 2 ve Python 3 arasındaki farklar.

Hazır olduktan sonra PIP (Python için PIP nasıl kurulur):

pip install tıklayın

İlk Tıklama Programınızı Yazma

Bir metin düzenleyicide, İçe Aktar'ı tıklayarak başlayın:

içe aktarma tıklaması

İçe aktarıldıktan sonra bir yöntem ve bir ana giriş noktası. bizim Python OOP kılavuzu bunları daha ayrıntılı bir şekilde ele alır, ancak kodunuzu saklamak için bir yer ve Python'un onu çalıştırmaya başlaması için bir yol sağlar:

içe aktarma tıklaması. import random def veg (): __name__ == '__main__': veg () ise, temel yöntem rastgele bir sebze baskısı döndürür (random.choice (['Havuç', 'Patates', 'Şalgam', 'Parsnip']))

Bu çok basit senaryo rastgele bir sebze verecektir. Kodunuz farklı görünebilir, ancak bu basit örnek Tıklama ile birleştirmek için mükemmeldir.

Bunu farklı kaydet click_example.pyve ardından komut satırında çalıştırın (konumuna gittikten sonra):

python click_example.py

Rastgele bir sebze adı görmelisin. Tıklama ekleyerek işleri geliştirelim. Kodunuzu Tıklama dekoratörleri ve bir için loop:

@ Click.command () @ click.option ('- toplam', varsayılan = 3, yardım = 'Çıktılacak sebze sayısı.') def veg (total): Temel yöntem, aralıktaki (toplam) sayı için rastgele bir sebze döndürür: print (random.choice (['Havuç', 'Patates', 'Şalgam', 'Parsnip'])) __name__ == '__main__': veg ()

Koştuktan sonra üç kez rastgele bir sebze görürsünüz.

Bu değişiklikleri yıkalım. @ Click.command () dekoratör yapılandırmaları Dekoratörün hemen ardından işlevle çalışmak için tıklayın. Bu durumda, bu sebze () işlevi. Click ile kullanmak istediğiniz her yöntem için buna ihtiyacınız olacaktır.

@ click.option dekoratör, komut satırından yöntemleri kabul edecek parametreleri kabul etmek için tıklamayı yapılandırır. Burada kullanılan üç argüman vardır:

  1. -Toplam: Bu, komut satırının komut satırı adıdır. Toplam argüman.
  2. varsayılan: Komut dosyanızı kullanırken toplam bağımsız değişkeni belirtmezseniz, Click varsayılandan değeri kullanır.
  3. Yardım: Programınızı nasıl kullanacağınızı açıklayan kısa bir cümle.

Tıklayın eylemi görelim. Komut satırından komut dosyanızı çalıştırın, ancak Toplam böyle bir argüman:

python click_example.py --toplam 10

Ayarlayarak –Toplam 10 komut satırından, komut dosyanız on rastgele sebze yazdıracaktır.

Eğer geçersen -Yardım bayrak, kullanabileceğiniz seçeneklerle birlikte güzel bir yardım sayfası görürsünüz:

python click_example.py --help
Python Click yardımı

Daha Fazla Komut Ekleme

Aynı işlevde çok sayıda Tıklama dekoratörü kullanmak mümkündür. Başka bir tıklama seçeneği ekleyin sebze fonksiyon:

@ click.option ('- sos', varsayılan = Yanlış, yardım = 'Sebzelere "sos ile" ekle.)

Bunu yönteme aktarmayı unutmayın:

def veg (toplam, et suyu):

Şimdi dosyanızı çalıştırdığınızda, sos bayrak:

python click_example.py --yeşil y

Yardım ekranı da değişti:

Python Click yardım ekranı

İşte tüm kod (düzgünlük için bazı küçük yeniden düzenleme ile):

içe aktarma tıklaması. rasgele içe aktar @ click.command () @ click.option ('- sos', varsayılan = Yanlış, yardım = 'Sebzelere "sos ile" ekle.) @ click.option ('- toplam', varsayılan = 3, yardım = 'Çıktılacak sebze sayısı.') def veg (toplam, sos): Temel yöntem, aralıktaki (toplam) sayı için rastgele bir sebze döndürür: seçim = random.choice (['Havuç', 'Patates', 'Şalgam', 'Parsnip']) sossa: yazdır (f '{seçim} soslu') başka: yazdır (seçim) __name__ == '__main__': sebze ()

Daha Fazla Tıklama Seçenekleri

Temel bilgileri öğrendikten sonra, daha karmaşık Tıklama seçeneklerine bakmaya başlayabilirsiniz. Bu örnekte, birkaç değeri tek bir bağımsız değişkene nasıl aktaracağınızı öğreneceksiniz. Bizim tuples hakkında daha fazla bilgi edinebilirsiniz Python sözlüğü.

Adlı yeni bir dosya oluştur click_example_2.py. İşte ihtiyacınız olan başlangıç ​​kodu:

içe aktarma tıklaması. rasgele içe aktar @ click.command () def add (): Temel yöntem birlikte iki sayı ekler. __name__ == '__main__' ise geç: ekle ()

Burada yeni bir şey yok. Önceki bölümde bu kod ayrıntılı olarak açıklanmaktadır. Ekle @ click.option aranan sayılar:

@ click.option ('- sayılar', nargs = 2, type = int, help = 'Birlikte iki sayı ekle.')

Buradaki tek yeni kod nargs = 2, ve = İnt tip seçenekler. Bu, sayılar seçeneği ve her ikisinin de tür tamsayıları olması gerekir. Bunu istediğiniz herhangi bir sayı veya (geçerli) veri türüyle değiştirebilirsiniz.

Son olarak, Ekle kabul etme yöntemi sayılar argümanını seçin ve onlarla biraz işlem yapın:

def add (numbers): Temel yöntem birlikte iki sayı ekler. sonuç = sayılar [0] + sayılar [1] yazdır (f '{sayılar [0]} + {sayılar [1]} = {sonuç}')

Geçirdiğiniz her değere, sayılar nesne. Komut satırında nasıl kullanacağınız aşağıda açıklanmıştır:

python click_example_2.py - sayı 1 2
Python Click nargs sonucu

Python Yardımcı Programlarının Çözümü

Gördüğünüz gibi, Click kullanımı kolay ancak çok güçlü. Bu örnekler yalnızca Click'ün temellerini kapsamakla birlikte, şimdi temel bilgileri kavradığınız için öğrenebileceğiniz çok daha fazla özellik var.

Bulunan yeni becerilerinizi uygulamak için bazı Python projeleri arıyorsanız, neden öğrenmiyorsunuz? Python ile bir Arduino nasıl kontrol edilir Python ile Arduino Nasıl Programlanır ve Kontrol EdilirNe yazık ki, bir Arduino'yu doğrudan Python'da programlamak imkansızdır, ancak bir Python programı kullanarak USB üzerinden kontrol edebilirsiniz. İşte böyle. Daha fazla oku veya ne dersin Python ile Google E-Tablolar'da okuma ve yazma Python ile Google E-Tablolara Okuma ve YazmaPython garip ve olağandışı görünebilir, ancak öğrenmesi ve kullanması kolaydır. Bu makalede, Python'u kullanarak Google E-Tablolar'a nasıl okunup yazılacağını göstereceğim. Daha fazla oku ? Bu projelerin her ikisi de Click!

Joe, İngiltere Lincoln Üniversitesi Bilgisayar Bilimi mezunudur. Profesyonel bir yazılım geliştiricisidir ve uçağı uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video üretirken bulunabilir.