【发布时间】: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