Benim Python komut böyle komut satırından başlatıldığında:Birlikte kullanılamayan seçenekleri nasıl kullanırsınız (OptionParser kullanarak)? (Yapılacaklar listesi için)
todo [options] <command> [command-options]
Bazı seçenekler birlikte kullanılamaz, örneğin
todo add --pos=3 --end "Ask Stackoverflow"
hem üçüncü pozisyonunu belirtmek istiyorum ve listenin sonu. Benzer şekilde, kısa veya bilgilendirici olmak üzere programımı karıştırırdım. Oldukça güçlü bir seçenek kontrolüne sahip olmak istediğimden, bu gibi durumlar bir demet olacak ve yeni olanlar kesinlikle gelecekte ortaya çıkacak. Bir kullanıcı kötü bir seçenek kombinasyonunu geçerse, tercihen optisse tarafından sağlanan kullanım yardımı ile birlikte bilgilendirici bir mesaj vermek istiyorum. Şu anda bunu, gerçekten çirkin ve fakir bulduğum bir if-else ifadesiyle hallediyorum. Hayalim benim kodunda böyle bir şey olmasıdır:
parser.set_not_allowed(combination=["--pos", "--end"],
message="--pos and --end can not be used together")
ve seçenekleri ayrıştırılırken OptionParser bu kullanmak.
bu kadar bildiğim kadarıyla yok, ben SO topluluğuna sorma: Bunu nasıl ele? Muhtemelen optparse.OptionParser
uzatarak
Müthiş çözüm! – Joel
'super()', 'OptionParser' eski stil sınıfı olarak oluşturulduğu için Python 2.X için çalışmaz. Bir çözüm, [Yığın Taşması sorusu 2023940] (http://stackoverflow.com/questions/2023940/using-super-when-subclassing-python-class-that-is-not-derived-from-objectold) adresinde sağlanmıştır. – gotgenes
Teşekkürler, üst sınıfı açık bir şekilde yazarak onu düzelttim. –