2013-06-11 24 views
5

Python'a giriyorum ve yıldız işaretleri ile ilgili bir sorum var.Fonksiyonun dışındaki yıldız işaretleri

first, *middle, last = grades

: Onlar işlev çağrıları bağımsız değişkenler için kullanılır ama fonksiyon kartlarının dışında bunları kullanarak kod parçacıkları gördük biliyoruz (örneğin değişkenlere içine açma, 5 notlarının bir demet içinde, örneğin demek Bu bağlamda yıldız işaretleri kullanmaya çalıştığınızda zaman

/bir işlev çağrısının argümanları dışında bağlamlarda, ben tercüman geçersiz sözdizimi olsun. burada bir şey eksik?

cevap

10

Python 3 bir desteği ile açma genişletilmiş tuple eklendi joker karakteri, bkz. PEP 3132:

hedef listesi, yıldız işareti ile başlayan bir hedefi içeren bir “rol” hedef olarak adlandırılan,

: nesnenin orada en azından gibi birçok öğe ile bir sekans olmalıdır

*start, tail = ... 
head, *middle, tail = ... 

assignment statements referans belgelere bakın hedef listesindeki hedefler, eksi bir. Dizinin ilk öğeleri, soldan sağa, yıldızlı hedeften önceki hedeflere atanır. Dizinin son öğeleri, yıldızlı hedeften sonraki hedeflere atanır. Sıradaki kalan öğelerin bir listesi daha sonra yıldız hedefine atanır (liste boş olabilir). bir atamanın sol-taraf (hedef listesi) bir asterisk arasında

kullanımı 2.

Python bir yazım hatasıdır