标签:class images 数据类型 es2017 技术分享 存在 对象引用 数字 存储
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
原链:http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html
笔记:
1 #第19讲 动态类型 2 3 #有一类特殊的对象,是用来存储数据的。包括:数字,字符串,表,字典 4 #C里面是变量,python是对象 5 #对象是储存在内存中的,不能直接接触到 6 #我们平时在程序中对象名,是指向这个对象的引用,对象和引用是分离的 7 8 a = 3 #把内存中的整数对象 3,赋值给变量a,对象a 9 10 a = ‘at‘# 内存中建立对象‘at‘,引用a指向‘at‘ 11 print(a) 12 13 #这个时候对象3没有引用指向它了,python就会自动销毁,释放内存 14 15 a = 5 16 b = a 17 a = a + 2 18 print(a) 19 print(b) 20 #b = a 引用b 指向 引用a 的那个对象 21 #第三句是对a重新赋值了 22 23 l1 = [1,2,3] 24 l2 = l1 25 l1 = 1 26 print(l2) 27 28 #不影响l2,依然是list[1,2,3] 29 30 #特例 31 l1 = [1,2,3] 32 l2 = l1 33 l1[0] = 5 34 print(l1) 35 print(l2) 36 37 #会发现索引0,也就是list 的第一个元素,变了,l1 l2 都变了 38 #list是很多个对象的引用,l1[0] 是1 ,l1[1] 是2 39 #只是改变了一个元素操作,所以大的对象引用都变了 40 41 42 #list dict 可以通过引用元素,改变自身对象,称为 可变数据对象 43 #数字 和 str 只能改变引用 指向,称为 不可变数据对象 44 45 #元组是可以引用,但是元组本身不可更新,也是不可变数据对象 46 47 48 49 50 51 #从动态类型看函数的参数传递 52 53 def f(x): 54 x = 100 55 print(x) 56 57 a = 1 58 f(a)#执行了函数f(x) 59 print (a) 60 61 #f(a) 是 100 62 #print(a) 输出是 1 63 64 #参数x 是一个新的引用,指向a所指的对象 65 #如果参数是不可变的对象,a 和x 相互独立,对于x 的操作不会影响到 a 66 67 68 def f(x): 69 x[0] = 100 70 print(x) 71 72 a = [1,2,3] 73 f(a) 74 print(a) 75 76 #跟上面很像,传递的可变的对象,改变之后,指向原list的引用都会变化
手画两张图
不可变数据类型
可变数据类型
标签:class images 数据类型 es2017 技术分享 存在 对象引用 数字 存储
原文地址:http://www.cnblogs.com/liyihao/p/7700381.html