首页 > 解决方案 > 通过 init kwargs 向对象添加属性

问题描述

class Obj:
    def __init__(self, **kw):
        # code

obj = Obj(a=5, b=10)
print(obj.a, obj.b) # 5 10

这项任务是否有经过验证的解决方案?

标签: pythonpython-3.x

解决方案


您可以执行以下操作来分配传入的属性**kw

class Obj:
    def __init__(self, **kw):
        # in case of python 2, the following line is: for k, v in kw.iteritems():
        for k, v in kw.items():
            setattr(self, k, v)

然后使用您在帖子中提到的方式:

obj = Obj(a=5, b=10)
print(obj.a, obj.b) # 5 10

推荐阅读