Mi args és kwargs python
. vagy hogy egy változó számú érv Python
Ahhoz, hogy a kérdésre adandó válasz a címsor, osszuk két részből áll:- Mi args és kwargs? (A legtöbb türelmetlen is kém answer =))
- Mit jelentenek a csillagok?
Megjegyzés: Ha a funkció eltelt egy tagjainak listája követnie kell szigorúan kondicionált előrendelést, vagy más szóval, a helyükön (különben hogyan tudjuk, hogy milyen egy bizonyos eleme a listán?). Például, ha sign_up () függvény vár minket a listára [név, kor, nem]. meg kell szigorúan betartani ezt a sorrendet; nem nevezhetjük függvényében sign_up (kor, név, nem). Az ilyen érvek nevezzük névtelen vagy pozicionális. Ha az argumentum egy funkció szótár, a sorrend lehet önkényes, hiszen szótárt át a kulcsokat, akkor nem szabad összekeverni. Ezek az érvek a named.
Folytatva a példát a feljegyzésben, jelöljük listánkat a változó: egy változót ad a funkció: Ebben az esetben a függvény felfogható érv nem egy tárgy (a gyűjtemény is ellenzi, és általában mindent Python), és néhány, a gyűjtemény kell kicsomagolni. Pontosan ez az, mi teszi a csillagok. Bejegyzés az ilyen típusú (egy vagy két csillag) Pythonban használt két esetben: ha hívod (ahogy tettük azt, hogy csak), és meghatározzuk a funkciót.
* Paraméterek: és ** kwargs meghatározásában funkció
Függvényargumentumok Python, jelöljük * és ** meghatározásában, vagy hívja, az úgynevezett meghatározatlan számú helyzeti vagy kulcsszó érveket. Nagyon meglepő. Tény, hogy ez a gyűjtemény - listák, hármas és szótárak. Az első két továbbítja helyzeti érvek, szótárak - elemzi az érveket. Átadni a funkcióit több érv, mint egy gyűjtemény, gyűjtemény ki kell csomagolni. Ez úgy történik, egy vagy két csillaggal. Mi határozza meg a függvény egy formális (helyzeti) érv, és meghatározatlan számú további helyzeti érvek (itt kettő). Működni elemzi érvek meghatározása a következő:
Tehát mi args és kwargs.
Most már készen áll, hogy megtanulják az igazságot erről :)
Nevek és args kwargs kimondatlan megállapodás felhasználta a Python dokumentációt. Tény, hogy nem az egyik leáll, továbbá bármely más kódok és változó nevét. Például szótárak mentén c ** kwargs néha használja ** lehetőségeket.
A használata * és ** hívásakor funkciók
Most lássuk, hogyan kell hívni a függvényt helyzeti érveket (már bizonyította fent). Már kevesebb értelme args és kwargs, hogy jobb lenne, hogy válasszon egy leíró neveket (bár ebben a példában nem vagyunk messze a fejlett e =)): Érvek lehet adni, és így:
A következő példában egy hívást, hogy a megnevezett függvényargumentum:
Ugyanaz a szó:
következtetés
Tehát, ha röviden összefoglaljuk a fenti, a csillagok Python használják az alábbi esetekben:
- Amikor függvényt meghatározó, ha a függvény határozatlan számú érveket.
- Amikor egy funkció, ha kell átadni több objektumot a gyűjteményben. Felhívjuk figyelmét, hogy nem egy tárgy gyűjteménye, és tárolt objektumok gyűjteménye. Így a kijelölése * args és ** kwargs kicsomagolt gyűjtése és tegyük bele az elemeket a funkciót.