Commit d5ab0605 authored by JackV's avatar JackV

Improve *args and **kwargs explaination & example

parent c0693efd
......@@ -553,6 +553,15 @@
"f(1, c=4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"f(c = 10, a = 8, b = 3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
......@@ -592,6 +601,42 @@
"somma_migliorata(1,2,3,4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def operazione(*args, **kwargs):\n",
" if kwargs['operazione'] == 'somma':\n",
" accumulatore = 0\n",
" for i in args:\n",
" accumulatore += i\n",
" elif kwargs['operazione'] == 'moltiplicazione':\n",
" accumulatore = 1\n",
" for i in args:\n",
" accumulatore *= i\n",
" return accumulatore"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"operazione(1,2,3,4,5,6,7,8, operazione = 'somma')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"operazione(1,2,3,4,5,6,7,8, operazione = 'moltiplicazione')"
]
},
{
"cell_type": "markdown",
"metadata": {},
......@@ -678,13 +723,6 @@
"source": [
"x is None"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
......
......@@ -354,8 +354,8 @@ def f(a, b=3, c=6):
A volte ci tornerebbe comodo prendere una quantità indefinita di
argomenti, in questo caso gli \*args e \*\*kwargs vengono in nostro
aiuto. (se non sappiamo cosa mettere prima della funzione)
** args ** ---> elementi posizionali in una tupla Ex (1,2,3,4,8,9,10) o ("Ferruccio","Resta")
** kwargs ** --> elementi appartenenti ad un dizionario Ex: (nome = "Ferruccio", cognome = "Resta")
* ** args ** ---> elementi posizionali in una tupla Ex (1,2,3,4,8,9,10) o ("Ferruccio","Resta")
* ** kwargs ** --> elementi appartenenti ad un dizionario Ex: (nome = "Ferruccio", cognome = "Resta")
(N.B. Il nome **args** e **kwargs** è del tutto arbitrario, ma tuttavia
standandard de facto del linguaggio python)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment