type对象及内置对象陷阱
2015-09-06 23:26
543 查看
#一、关于type对象 """ 1、类型本身在python中也是对象类型。 2、内置的对象类型有:dict/list/str/tuple/int/float/complex/byte/type/set/file """ #类型测试的三种方式 """ 输出结果: True True True """ print type([1]) == type([]), print type([1]) == list, print isinstance([1],list) """ 函数类型的测试方法 """ import types def f(): pass """ 输出结果:True """ print type(f) == types.FunctionType #二、内置类型的常见陷阱 #1、赋值生成引用,而不是拷贝(以嵌套序列为例画出数据结构树图,就很好理解) """ L值改变时,M值随之改变 输出结果: M= ['X', [1, 3, 444], 'Y'] """ L = [1,3,4] M = ['X',L,'Y'] L[2] = 444 print "M=",M #2、重复增加层次深度 R = [11,12,13] """ R*3 == R + R + R 输出结果: R1= [11, 12, 13, 11, 12, 13, 11, 12, 13] """ R1= R * 3 print "R1=",R1 """ [R]*3 = [R] + [R] + [R] = [R,R,R] 输出结果: R2= [[11, 12, 13], [11, 12, 13], [11, 12, 13]] """ R2= [R] * 3 print "R2=",R2 #3、循环数据结构:复合对象包含指向自身的对象 """ 1、python在对象中检测到循环,都会打印成[...] 2、输出结果: L= ['GREEN', [...]] """ L = ['GREEN'] L.append(L) print "L=",L #4、不可变类型不可以在原处修改 T = (1,2,3) #T[2] =4 ,赋值会报错 """ 输出结果:T= (1, 2, 4) """ T = T[:2] + (4,) print "T=",T
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法