python相关的问题,不明白为什么会这样

为什么下面的代码结果是这样?

class a(object):
    b = []
    def __init__(self,c):
       self.b.append(c)

   def ab(self):
       print(self.b)
if __name__ == '__main__':
    asb = a(1)
    asb.ab()

    asbc = a(2)
    asbc.ab()

结果分别是[1]和[1,2]

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^