如何在Python中处理类** kwargs?

时间:2016-01-07 05:55:49

标签: python class arguments self kwargs

如何使用“one”类参数**kwargs设置对象属性?

我想要的是在一个循环中执行此代码:

class purchase():
    def __init__(self,**kwargs):
        self.set_attributes(kwargs)

    def set_attributes(self,kwargs):
        if 'file' in kwargs.keys():
            self.file = kwargs['file']
        if 'text' in kwargs.keys():
            self.text = kwargs['text']
        if 'language' in kwargs.keys():
            self.language = kwargs['language'] 

应该是这样的:

class purchase():
    def __init__(self,**kwargs):
        self.set_attributes(kwargs)

    def set_attributes(self,kwargs):
        for v,k in kwargs.iteritems():
            self.k = v

当然不起作用。

有没有办法在一个循环中以编程方式设置对象属性?

1 个答案:

答案 0 :(得分:2)

你去吧

class purchase():
    def __init__(self,**kwargs):
        self.set_attributes(kwargs)

    def set_attributes(self,kwargs):
        for k, v in kwargs.iteritems():
            setattr(self, k, v)