我想写一个函数来附加一个Python对象的属性,该属性是一个列表。
这是我的代码,它将属性设置为给定值。是否有更简单/更清洁的方式..
class Obj(object):
def __init__(self):
self.a = 2
self.b = []
self.c = []
def append_att(self, att):
at = getattr(self, att)
at.append(self.a)
setattr(self,att, at)
obj = Obj()
obj.append_att('b')
obj.append_att('b')
print obj.b
答案 0 :(得分:0)
您可以使用self.__dict__
附加到列表中,其字符串变量名称与要添加到列表中的值相同:
class Obj(object):
def __init__(self):
self.a = 2
self.b = []
self.c = []
def append_att(self, att):
self.__dict__[att].append(self.a)
o = Obj()
o.append_att('b')
o.append_att('b')
o.append_att('c')
print(o.b)
print(o.c)
输出:
[2, 2]
[2]