How can you set class attributes from variable arguments (kwargs) in python
<p>Suppose have a class with a constructor (or other function) that takes a variable number of arguments and then sets them as class attributes conditionally.</p>

<p>I could set them manually, but it seems that variable parameters are common enough in python that there should be a common idiom for doing this.  But I'm not sure how to do this dynamically.</p>

<p>I have an example using eval, but that's hardly safe.  I want to know the proper way to do this -- maybe with lambda?</p>

<pre><code>class Foo:
    def setAllManually(self, a=None, b=None, c=None):
        if a!=None: 
            self.a = a
        if b!=None:
            self.b = b
        if c!=None:
            self.c = c
    def setAllWithEval(self, **kwargs):
        for key in **kwargs:
            if kwargs[param] != None
                eval("self." + key + "=" + kwargs[param])
</code></pre>
