【问题标题】:How to process class **kwargs in Python?如何在 Python 中处理类 **kwargs?
【发布时间】:2016-04-11 10:28:08
【问题描述】:

如何使用“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

这当然行不通。

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

【问题讨论】:

  • 您正在寻找setattr
  • vars(self).update(kwargs)

标签: python class arguments self keyword-argument


【解决方案1】:

给你

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 2020-05-16
    • 1970-01-01
    • 2018-06-08
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多