üzerinden değişkenleri Özü:Python: Ben komut argümanlar ayrıştırmak için Python argparse kullanıyorum ad
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
Şimdi a
, b
ve c
ile bazı hesaplamalar yapmak istiyorum. Ancak, her zaman args.a + args.b + args.c
yazmak için yorucu buluyorum.
Bu nedenle, bu değişkenleri ayıklanması ediyorum: Ben a + b + c
yazabilir
a, b, c = [args.a, args.b, args.c]
Öyle ki. Bunu yapmanın daha zarif bir şekilde
var mı? Birçok argümanlar eklerken
Manuel çıkarma çok sıkıcı ve hata eğilimli olur.
Cevabınız için teşekkürler. Çalışır, ancak "exec" "kısmı çok çirkin bir hack gibi hissettirir. Bu neden gerekli? – Lemming
Düzeltme: İşlev iç içe geçmiş işlevler içeriyorsa çalışmaz. Bu durumda, aşağıdaki hata iletisi açılır: 'exec" " SözdizimiHata: 'ana' işlevinde nitelenmemiş çalıştırmaya izin verilmez variables serbest değişkenlere sahip iç içe geçmiş bir işlev içerir' – Lemming
Ick. Bunu bilmiyordum ama mantıklı. Kapanışlar, lokallere indeksle erişen Python'un standart yerel değişken mekanizmasını gerektirir. 'Exec' ifadesinin bir fonksiyonun herhangi bir yerindeki kullanımı, Python'un yerlilere isme göre alternatif bir yöntem kullanmasını zorunlu kılar, çünkü 'exec' yerlileri tanımlayabilir veya değiştirebilir (bu ayrıca eğer' locals() 'i eğer exec yi de güncelleyebilirsiniz 'işlevde görülür, ancak başka türlü değil. – kindall