2013-01-02 25 views
6

Bu, yeni bir kullanıcı sorusu gibi gelebilir, ancak gerçekten bunun için yardıma ihtiyacım var. Onu nasıl etiketleyeceğimi bile bilmiyorum, ama sanırım sadece bir Python sorusu.Python kodlama stili birden çok parametreyle işlev çağrısında çağrılıyor

a, b, c, d, e = function (input1, input2, input3, input4, input5) 

Sorun tam değişkenleri/işlevler isimleri kullandığınızda çizgi sadece çok uzun ve kod çirkin görünüyor, eksiğim: Ben 5 parametre alır ve 5 değerlerini döndüren bir işlevi kullanmak gerekir burada daha süslü bir çözüm kullanmak ve bir dicti veya liste kullanma konusunda düşünüyordum bu yüzden bunu yapabilirsiniz:

input_dict['param1'] = input1 
input_dict['param2'] = input2 
input_dict['param3'] = input3 
input_dict['param4'] = input4 
input_dict['param5'] = input5 
ret_dict = function(input_dict) 

aramaların bu tür kod kalitesini artırmak için daha iyi ya da "pythonic" yolu var mı ?

Şimdiden teşekkürler!

+0

Tam olarak orijinal kod hakkında ne çirkin bulduğunuzu tam olarak anlayabildiğimi ve "input_dict" sürümünün ne kadar güzel olduğunu anlayamıyorum. – NPE

+0

Python'da bir 'dict' literal notasyonu olduğunu unutmayın, bu nedenle birçok ödev yerine, sözlükleri '{x: y, w: z}' şeklinde yapılandırmalısınız. –

+3

Ayrıca, [PEP-8] (http://www.python.org/dev/peps/pep-0008/#maximum-line-length), hat uzunluğu ile ilgili iyi önerilerde bulunur. –

cevap

10

Bu

my_function(test, this, out, like, so, 
        something, indent) 

gibi yuva hatları Sen PEP-8 sahiptir Hatta Ayrıca, bu

result = my_function(big, long, list, 
         of, args) 
a,b,c,d = result 

bunu yapabilirsiniz

a = [1,2,3,4,5] 
my_function(*a) 

gibi args içine listesini genişletebilir olabilir çizgi uzunluğu ile ilgili iyi öneriler . - Lattyware 5 dakika önce

+0

Teşekkürler, aradığım şey bu! –

İlgili konular