2013-06-11 11 views
5

Wychodzę na pytona i miałem pytanie dotyczące gwiazd. Wiem, że są one wykorzystywane do argumentów wywołania funkcji, ale widziałem fragmenty kodu przy użyciu ich poza kart funkcyjnych (powiedzmy na przykład w krotce 5 stopni, rozpakowywanie ich do zmiennych, takich jak:Gwiazdki poza wywołaniami funkcji

first, *middle, last = grades

Ilekroć próbuję użyć gwiazdki w tym kontekście/konteksty spośród argumentów wywołania funkcji jest, mam nieprawidłową składnię w tłumacza. Am I brakuje czegoś tutaj?

Odpowiedz

10

Python 3 dodaje rozszerzone krotki rozpakowywania ze wsparciem dla jednej wildcard, zobacz PEP 3132:

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

Zobacz dokumentację assignment statements odniesienie:

Jeśli lista docelowa zawiera jeden cel poprzedzony gwiazdką, nazywany „zagrała” target: obiekt musi być sekwencją z co najmniej tak wielu elementów, ponieważ nie są celami na liście celów minus jeden. Pierwsze elementy sekwencji są przypisane, od lewej do prawej, do celów przed gwiazdą cel. Ostateczne elementy sekwencji są przypisane do celów po cel oznaczony gwiazdką. Lista pozostałych elementów w sekwencji jest następnie przypisywana do zaznaczonego celu (lista może być pusta).

Zastosowanie gwiazdką w bocznej stronie LEF (lista docelowej) cesji jest błąd składni Pythona 2.

Powiązane problemy