Python核心编程---读书笔记:第4章 Python对象
来源:互联网 发布:网络发行许可证 编辑:程序博客网 时间:2024/06/05 12:03
第4章 Python对象
4.1Python对象
有三特性:身份,类型和值
身份:对象有唯一标识的身份:id(),返回内存地址
类型:type()查看对象类型
4.1.1对象属性
标准类型(基本数据类型):数字,整型,布尔型,复数,字符串,列表,元组,字典
4.3其他内建类型
类型,Null对象(None),文件,集合,函数,模块,类
4.3.1类型对象和type类型对象
内建函数type():例如type(42)
类型对象的类型是type
4.3.2None,Python的Null对象
空对象只要有一个值:None,布尔值为False
4.4内部类型
代码,帧,跟踪记录,切片
代码对象:编译过的Python源代码片段,可执行对象
帧对象:Python执行栈帧
跟踪记录对象:引发异常会被捕获。
切片对象:包含步进切片,多维切片,省略切片
多维切片:sequence[start1:end1 , start2:end2]
省略号:sequence[…,start1 : end1]
切片对象可由内建函数slice()生成。
步进切片:sequence[起始索引 : 结束索引 : 进步值]
进步值若为-1,表示从后向前
def slice_test(): name = "dongfei" name2 = name[: : -1] # iefgnod , -1表示进步值 seqence[start:end:step ],-表示从后向前 print(name2) name3 = name[: : -2] # ifnd print(name3)
省略对象: Null对象None,Ellipsis
XRange对象:xange()会生成XRange对象,用于大量数据迭代
目前被range()替代
4.5.2对象身份比较
用id(),实际就是判断两个对象的地址是否相同
#经过运算后相等的两个对象实际内存地址不同def id_test(): num1 = 4.3 num2 = 3 + 1.3 if id(num1) == id(num2) : print("equal") else: print("not equal")
is标识符也可以用来判断是:
a is b
# is 标识符可以用于判断两个对象是否相同#注意两个整数指向同一个数值,内存地址相同;但是两个相同浮点数,地址不同【Python核心编程说的】,实际发现不对,两个相同浮点数地址也是相同的def is_test(): nums1 = [1,2,3] nums2 = nums1 if nums1 is nums2: print("equal") else: print("not equal") a = 1.010 b = 1.01 print(id(a)) print(id(b))
4.5.3 布尔类型
not 优先级最高
4.6标准类型内建函数
cmp() , repr(), str() , type()
cmp(obj1,obj2):比较obj1和obj2,
返回值 < 0: obj1 <obj2 (一般为-1)
repr(obj) :返回对象的字符串表示
str(obj):返回对象可读性好的自复查un表示
type(obj):返回对象类型
# 3.x没有cmp.用operator.lt/le/ne/eq 等来代替def operator_test(): a = -1 b = 1 print(operator.lt(a, b))
eval():将字符串str当成有效比到时求值并返回结果
4.6.4python不支持函数重载,子集保证调用的是对象
类型检查: isinstance()
import types
if type(num) == types.IntType
或者
if isinstance(num , int)
4.7类型工厂函数
例如int(),type()实际是工厂函数,调用就生成类型的实例
4.8标准类型的分布
基本:核心类型
内建:python默认提供
数据:一般存储数据
对象:对象是数据和功能的抽象
原始:最底层数据存储
类型:数据类型
4.8.1存储模型
存储模型分为:
原子模型:数值,字符串
容器类型:列表,元组,字典
4.8.2更新模型
不可变类型:数字,自复查un,元组
- Python核心编程---读书笔记:第4章 Python对象
- python核心编程读书笔记--第4章 对象
- Python核心编程---读书笔记:第13章 面向对象编程
- 《Python核心编程》(第二版) 第4章 Python对象
- Python核心编程读书笔记--面向对象编程
- Python核心编程---读书笔记:第1章~第3章
- Python核心编程---读书笔记:第7章~第13章
- python核心编程---读书笔记:第16章 网络编程
- python核心编程---读书笔记:第18章 多线程编程
- python核心编程---读书笔记:第21章 数据库编程
- Python核心编程---读书笔记:第5章 数字
- Python核心编程---读书笔记:第8章 条件和循环
- Python核心编程---读书笔记:第9章 文件和输入输出
- Python核心编程---读书笔记:第10章 错误和异常
- Python核心编程---读书笔记:第12章 模块
- Python核心编程---读书笔记:第14章 执行环境
- Python核心编程---读书笔记:第15章 正则表达式
- python核心编程读书笔记--第1章eclipse插件
- 基础sql语句总结(mysql)
- 【NOI2014】数学题(math)
- 快速排序
- PAT1070结绳
- 共享内存
- Python核心编程---读书笔记:第4章 Python对象
- mybatis事务
- 【C++】面向对象类成员函数的重载、覆盖与隐藏
- 排序算法比较系列一
- 负载均衡的几种常用方案
- JAVA学习之复制整个文件夹到指定位置
- Python核心编程---读书笔记:第5章 数字
- ACM程序设计书中题目--T(次方问题)
- 二叉查找树