How am I able to assign a value to a literal? ('a' = 10)
<pre><code>def foo(**args):
    for k, v in args.items():
        print type(k), type(v)
    for k, v in args.items():
        k = v
    print k
    print type(k)

foo(a = 10)
foo(**{'a':10})
</code></pre>

<p>Gives me</p>

<pre><code>&lt;type 'str'&gt; &lt;type 'int'&gt;
10
&lt;type 'int'&gt;
&lt;type 'str'&gt; &lt;type 'int'&gt;
10
&lt;type 'int'&gt;
</code></pre>

<p>So I am confused how am I able to do this as k is a string, so shouldn't I not be able to assign to it?</p>

<p>I obviously can't do</p>

<pre><code>In [35]: 'a' = 10
------------------------------------------------------------
   File "&lt;ipython console&gt;", line 1
SyntaxError: can't assign to literal (&lt;ipython console&gt;, line 1)
</code></pre>
