单例和list的append一起用出有关问题了

单例和list的append一起用出问题了
我想用oldlist保存list的原值,然后对list使用append方法添加一组数据,但是发现oldlist的值也跟着改变了,我试验了下单纯的给list赋值,oldlist不会改变,想请教下大家这是怎么回事。
class Singleton(object):
    __instance = None

    def __init__(self):
        pass

    def __new__(cls, *args, **kwd):
        if Singleton.__instance is None:
            Singleton.__instance = object.__new__(cls, *args, **kwd)
        return Singleton.__instance

class MySingleton(Singleton):
    list = []
    oldlist = []

def fun():
print("fun oldlist",s.oldlist,"list",s.list)
s.oldlist=s.list
s.list.append([3,4])
print("fun2 oldlist",s.oldlist,"list",s.list)



s=MySingleton()
s.list=[1,2]
s.oldlist=s.list
s.list=[2,3]

print(s.oldlist,s.list)
fun()

------解决方案--------------------
看不出跟单例有啥关联,python里=是引用对象的意思,你在fun里s.oldlist=s.list后,两个属性都是引用同一对象...