如何附加Python对象属性(列表)

时间:2017-12-05 15:22:22

标签: python list object attributes append

我想写一个函数来附加一个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

1 个答案:

答案 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]