argument-unpacking
Co oznacza operator gwiazdy w wywołaniu funkcji?
Co oznacza operator * w Pythonie, np. w kodzie zip(*x) lub f(**k)?
Jak jest to obsługiwane wewnętrznie przez tłumacza?
Czy ... ydajność? Szybko czy wolno?
Kiedy jest przydatny, a kiedy nie?
czy powinna być używana w deklaracji funkcji czy w wywołaniu?
Rozpakowywanie, rozszerzone rozpakowywanie i zagnieżdżone rozszerzone rozpakowywanie
Rozważ następujące wyrażenia. Zauważ, że niektóre wyrażenia są powtarzane, aby przedstawić "kontekst".
(jest to długa lista) ... = 'XY', 3, 4 # ERROR -- too many values to unpack
Jak poprawnie wydedukować rezultat takich wyrażeń ręcznie?
Rozpakowywanie, rozszerzone rozpakowywanie i zagnieżdżone rozszerzone rozpakowywanie
Rozważmy te wyrażenia... Proszę o cierpliwość... to długa lista...
(Uwaga: niektóre wyrażenia są powtarzane - jest to tylko ... takich wyrażeń. Czy czytając czyjś kod, powinienem go po prostu zignorować i nigdy nie próbować pojąć, co robi to wyrażenie?
Klasa, która działa jak mapowanie do * * rozpakowywania
Bez podklasowania dict, co klasa musi być traktowana jako mapowanie, aby mogła zostać przekazana do metody z **.
from abc im ... o dict waliduje twierdzenia jako podklasę, ale nie powiodło się isinstance(o, dict). Idealnie, nie nawet chce używać ABCMeta.
Przekazywanie tablicy / listy do Pythona
Patrzyłem na przekazywanie tablic lub list, jak Python ma tendencję do ich wywoływania, do funkcji.
Czytałem coś o używaniu ...
def someFunc(*args, someString)
Ponieważ wyrzuca błąd.
Chyba kompletnie się pogubiłam i szukam kogoś do wyjaśnij mi to.
Rozpakuj Tablicę Jako Argumenty
Więc w Pythonie i Ruby istnieje operator splat ( * ) do rozpakowywania tablicy jako argumentów. W Javascript jest .funkcja ap ... main() {
arr := []int{2,4}
sum := my_func(arr)
}
Przepraszam, jeśli popełniam błędy składniowe/różne. Jestem nowy.