码迷,mamicode.com
首页 > 编程语言 > 详细

我爱Python之对象的可变性

时间:2014-11-09 13:53:32      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:style   color   ar   sp   strong   div   on   bs   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之对象的可变性

标签:style   color   ar   sp   strong   div   on   bs   python   

原文地址:http://www.cnblogs.com/tanggu/p/4084991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!