A function with non keyword arguments and keyword arguments
<p>If I declare a function with non keyword arguments such as a tuple and keyword arguments such as a dictionary, are they declared?</p>

<p>For example:</p>

<pre><code>def someFunc(a, *nkw, **kwa):
    nkwList = []
    kwList  = []
    for i in nkw:
        nkwList.append(i)
    for j in kwa:
        kwList.append(j)
    print a, nkwList, kwList
</code></pre>

<p>Input:</p>

<pre><code>someFunc(1)
</code></pre>

<p>Output:</p>

<pre><code>1 [] []
</code></pre>

<p>As you can see, even though I did not pass a tuple and a dictionary, I didnot get Index out of range error when I loop through nkw and kwa. From my understanding, I think *nkw and **kwa are created in the function declaration itself.</p>

<p>Can anyone help me understand this concept?</p>
