首页 > 代码库 > 我爱Python之对象的可变性
我爱Python之对象的可变性
可变性:指一个对象的值是否可改变。
所有Python对象都有三个属性:类型、标识符、值,三个属性几乎总是只读的,在对象的生命周期内它们是不可变的。唯一例外的是对象的值,如果值可变则是可变对象,值不可变就是不可变对象。
不可变对象传值,可变对象传引用
简单的类型或者“标量”类型,包括整数和其他数字类型,str和Unicode字符串类型以及元组是不可变的。剩下字典、列表、类、类的实类等都是可变的
>>> mylist1 = [1, ‘a‘, [‘foo‘, ‘bar‘]]
>>> mylist2 = list(mylist1)
>>> mylist2[0] = 2
>>> mylist2[2][0] = ‘biz‘
>>> print mylist1
[1, ‘a‘, [‘biz‘, ‘bar‘]]
>>> print mylist2
[2, ‘a‘, [‘biz‘, ‘bar‘]]
前两个对象整数和字符串是不可变的(传值),但第三个对象是可变的列表(传引用),所以mylist1也改变了
我爱Python之对象的可变性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。