What is a simple way to deal with argument initial in (*args, **kwargs) python?
<p>Base class looks like this (code comes from Django, but the question isn't Django specific):</p>

<pre><code>class BaseModelForm(BaseForm):
    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
                 initial=None, error_class=ErrorList, label_suffix=':',
                 empty_permitted=False, instance=None):

class ModelForm(BaseModelForm):
    __metaclass__ = ModelFormMetaclass
</code></pre>

<p>Derived class looks like this:</p>

<pre><code>class MyForm(forms.ModelForm):
    def __init__(self, data=None, files=None, *args, **kwargs):
        super(EdocForm, self).__init__(data, files, *args, **kwargs)
        self.Meta.model.get_others(data, files, kwargs.get('instance', None))
</code></pre>

<p>If the coder passes instance as a kwargs this is all fine and should work, but what if they don't do that and pass it in args instead?  What is a sane way to extract <strong>instance</strong> when dealing with *args and **kwargs?  Admittedly in this case the chances of instance being in args is small, but if it was the 3rd argument instead of the 5th (not counting self).</p>
