Python

2010-05-03 37 views
8

'daki bir işleve argüman olarak bir listenin elemanlarını iletin Python'da basit bir yorumlayıcı yapıyorum ve işlevlerime farklı sayıda argüman işleme konusunda sorun yaşıyorum. Şu anki yöntemim, aşağıdaki gibi komutların/argümanların bir listesini almaktır. Python

args = str(raw_input('>> ')).split() 
com = args.pop(0) 

Sonra o komutu vardır:> kod eşleştirmeleri benim sözlükte olduğunu ve eğer ben orada sakladığınız işlevini çağırmak olmadığını kontrol, com yürütmek. (Bazı geçebileceği yerlerde
commands[com](args[0],args[1]) 

bazı hile var mı: Bir komut birden fazla argüman olsaydı

commands[com]() 

Ancak, bu isteyeyim: herhangi bir arguman komut için, şu şekilde görünecektir veya arg listemin elemanlarının tümünü çağırmaya çalıştığım işleve mi? Ya da python'un cmd sınıfını kullanmak zorunda kalmadan bunu uygulamak için daha iyi bir yolu var mı?

commands[com](*args) 
:

cevap

13

pozisyonel argümanlar Listenizi açma deneyin