简体   繁体   English

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

[英]How to process class **kwargs in Python?

How could I set object attributes using "one" class argument **kwargs ? 如何使用“一个”类参数**kwargs设置对象属性?

The thing I want is to do this code in one loop: 我想要做的事情是在一个循环中执行此代码:

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'] 

It should be something like: 应该是这样的:

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

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

which of course does not work. 哪个当然行不通。

Is there a way how to programatically set object attributes in one loop? 有没有一种方法可以在一个循环中以编程方式设置对象属性?

Here you go 干得好

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM