按道理说,python的参数传递吗,对于复杂对象是传引用的。
但是,发生了一件这样的事情,先记录:
- def test1(aset):
- aset.remove("a")
- def test2(cset):
- bset = aset.remove("a")
- cset = bset
- def test3(cset):
- bset = set()
- bset.add("b")
- bset.add("c")
- cset = bset
- aset = set()
- aset.add("a")
- aset.add("b")
- aset.add("c")
- print aset
- test3(aset)
- print aset
aset经过test1,test2和test3三个函数之后,只有test3调用后,aset的返回值不变。
感觉是test3中新建了一个set对象,所以跟传入参数分开了。
有时间再仔细研究。
阅读(1677) | 评论(0) | 转发(0) |