2013-03-24 14 views

cevap

21

Bazı kukla değişkenlere dönen başlığın paketten:

_, keep_this, _ = f() 

O _ açıkçası kullanılmamış bir şey olmak zorunda değildir.

(etkileşimli yorumlayıcı bir kukla adı olarak _ kullanmayın, işte son sonuca tutmak için kullanılır.) Alternatif

 

, endeks döndü tuple:

keep_this = f()[1] 
+1

birkaç saniye Beni ona yendi! Kahretsin! – feralin

+0

Kukla değişkenler için herhangi bir belge bulamıyorum. Herhangi bir yardımcı olur? – Cupitor

+1

@Naji temel olarak, kodun üç parçayı üç değişkene atadığı koddur. Tek bir alt çizgi geçerli bir değişken addır ve bir yok etme görevinde birden çok kez atanabilir. Bu ödev tamamlandığında, iki değişkene sahip olursunuz: keep_this, tuple'daki orta değere eşittir ve _, (eğer doğruysa), tuple'daki son değere eşittir. Daha fazla bilgi edinmek için yıkıcı atamaya bakmalısın. – feralin

1

return a,b,c satırı ile ne yapıyorsunuz tuple oluşturmak ve daha sonra işlevden döndürüyor. Böylece, yalnızca sonuçtan istediğiniz değerleri almak için tuple deconstruction kullanabilirsiniz. Örnek: Burada

def f(x): 
    return x, x + 1, x + 2 
_, b, _ = f(0) 
print(b) # prints "1" 
+0

Bir yan soru olarak, kod neden tek bir satırda? Birkaç satırda girdim ... – feralin

+0

Bir şekilde orada bir [SOH] (http://en.wikipedia.org/wiki/Start-of-Header#SOH) (0x01, CTRL-A) karakteri koymayı başardınız . –

+0

Bunu nasıl yaptığımı bilmiyorum! – feralin

3
def f(): 
    return 1,2,3 

, f() yüzden böyle bir şey yapabileceği (1,2,3) bir demet verir:

a = f()[0] 
print a 
1 

a = f()[1] 
print a 
2 

a = f()[2] 
print a 
3 
İlgili konular