python学习笔记(19)动态类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记(19)动态类型相关的知识,希望对你有一定的参考价值。

作者: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的引用都会变化

 手画两张图

技术分享

不可变数据类型

 

可变数据类型

技术分享

 

以上是关于python学习笔记(19)动态类型的主要内容,如果未能解决你的问题,请参考以下文章

python的学习笔记/002-2(2018-5-19)

python学习笔记012——pdb调试

python学习笔记八--动态类型

Python 学习笔记介绍基本语法流程控制

python学习笔记

python基本数据类型-python3.0学习笔记