How to set kwargs as attributes of an instance

Use the setattr function

class Test():

def __init__(self, **kwargs):

    for key, value in kwargs.items():
        setattr(self, key, value)

Use

>>> test = Test(name="surfer", age=5)
>>> test.name
>>> surfer

Only want specific keyword args use

    self.species = kwargs.get("species")

The Sneakier Way

Every object has an attribute called __dict__, the dictionary representation of writable attributes of an object.

But __dict__ is suppsed to be read only but you can do…

    class Test():

        def __init__(self, **kwargs):
            self.__dict__.update(kwargs)