Managing *args variance in calls to functions
<p>Have a method with the following signature:</p>

<pre><code>def foo(self, bar, *uks):
    return other_method(..., uks)
</code></pre>

<p>Normally this is called as:</p>

<pre><code>instance.foo(1234, a, b, c, d)
</code></pre>

<p>However in some cases I need to do something like this:</p>

<pre><code>p = [a, b, c, d]
instance.foo(1234, p)
</code></pre>

<p>At the receiving end this does not work, because <code>other_method</code> sees <code>*args</code> being made up of a single list object instead of simply a <code>[a, b, c, d]</code> list construct. If I type the method as:</p>

<pre><code>def foo(self, bar, uks = []):
    return other_method(..., uks)
</code></pre>

<p>It works, but then I'm forced to do this every time:</p>

<pre><code>instance.foo(1234, [a, b, c, d])
</code></pre>

<p>It's not a huge deal I guess, but I just want to know if I'm missing some more pythonic way of doing this?</p>

<p>Thanks!</p>
