在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:
a = 1 #把1赋值给a a = 2 #把2赋值a
这一过程中其实是重新创建新的值为2的对象a,原先指向1的变量a 被废弃了
可变类型:
l = [1,2,3] l[0] = 99
这一过程中只是修改而已,l 指向这个列表的变量没有变化
def changeList(self,mylist): mylist.extend([1,2,3]) print('函数内的list: ',mylist) def changeInt(self,a): a = 10 print('函数内的int: ',10) if __name__ == '__main__': s = Student() l = [11,22,33] s.changeList(l) print('函数外的list:',l) a = 100 s.changeInt(a) print('函数外的int: ',a) 结果: 函数内的list: [11, 22, 33, 1, 2, 3] 函数外的list: [11, 22, 33, 1, 2, 3] 函数内的int: 10 函数外的int: 100
小结
从代码可以看出,不可变的参数传入后并函数外并没有改变值,具有不可变性;而列表,传入参数后列表内容发生改变,函数外的列表也一同发生改变,具有可变性。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!