python基础03 python对象及其类型分类

记录摘自《Python核心编程(第二版)》
个人站点:测试开发者

1. Python对象

1.1 概念

Python使用对象模型来存储数据。构造任何类型的值都是一个对象。

1.2 特性

Python对象都拥有的三个特性:身份,类型和值

  • 身份
    每一个对象都有一个唯一的身份标识,任何对象的身份都可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址
  • 类型
    对象的类型决定该对象可以保存的值,可以进行的操作,以及所遵循的规则。可以使用内建函数type()查看。type()返回的是对象而不是简单的字符串

  • 对象表示的数据项

1.3 对象属性

某些对象有属性、值或相关联的可执行的代码,可以用句点(.)来进行访问

2. 标准类型

python3中有以下类型:

  • 整型
    整数 1
  • 布尔型
    True, False
  • 浮点型(双精度)
    小数 1.2
  • 复数型
    -8.333-1.47j
  • 字符串
    ‘你好’
  • 列表
    [1, 2, 3]
  • 元组
    (4, 5, 6)
  • 字典
    {‘a’:A}

3. 其他内建类型

  • 类型
  • Null对象(None)
  • 文件
  • 集合/固定集合
  • 函数/方法
  • 模块

3.1 类型对象与type类型对象

通过type()可以查看特定对象的类型信息,如type(1),得到类型对象****
类型对象的类型是什么?
type(type(1))
得到
所有类型对象的类型都是type, 它是所有Python类型的根和所有Python标准类的默认元类

3.2 None——Python的Null对象

Null(或NoneType),只有一个固定值:None,它的布尔值总是False

下列对象的布尔值是False:
None,False,所有值为0的数,0,0.0,0.0+0.0j,空字符串,空列表,空元组,空字典等

4. 内部类型

  • 代码
  • 跟踪记录
  • 切片
  • 省略
  • Xrange

4.1 代码对象

代码对象是编译过的python源代码片段,它是可执行对象。通过调用compile()可以得到代码对象,可以被exec命令或eval()命令来执行
它是函数定义的核心,一个函数除了代码对象属性以外,还有函数名,文档字符串,默认参数以及全局命名空间等

4.2 帧对象

帧对象表示Python的执行栈帧,包含Python解释器运行时所需要知道的所有信息。用到帧对象的一个地方是跟踪记录对象

4.3 跟踪记录对象

当代码出错时,python就会引发一个异常,当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建

4.4 切片对象

当使用python扩展的切片语法时,就会创建切片对象。拓展的切片语法允许对不同的索引切片操作,包括步进切片、多维切片和省略切片。

4.5 省略对象

用于扩展切片语法,起记号作用

4.6 XRange对象

是内建函数range()的兄弟版本,用于需要节省内存使用或range()无法完成的超大数据集场合

5. 标准类型操作符

5.1 对象值的比较

比较运算返回布尔值
数字类型根据数值的大小和符号进行比较,字符串按照字符顺序进行比较
多个比较操作符可以在同一行进行, 如 3<4<7 返回True
比较操作符:
python3 不支持 <> 风格的不等于运算

操作符 功能
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于

5.2 对象身份的比较

判断两个变量是否指向同一对象
a is b 等价于 id(a) == id(b)
如果返回True则是同一对象,否则不是

操作符 功能
obj1 is obj2 obj1 与 obj2 是同一对象
obj1 is not obj2 obj1 与 obj2 不是同一对象

5.3 布尔逻辑操作符

操作符 功能
not a a 的逻辑非
a and b a与b 的逻辑与
a or b a与b 的逻辑或

6. 标准类型内建函数

函数 功能
cmp(a, b) 返回整型i.
i<0, 则ai>0, 则a>b
i==0, 则 a == b
repr(obj) 返回一个对象的字符串表示
str(obj) 返回对象适合可读性好的字符串标识
type(obj) 得到一个对象的类型,并返回相应的type对象

7. 类型工厂函数

看上去像函数,实际上是类

int(), float(), complex() str() list(), tuple() type()
dict() bool() set(), frozenset() object()
classmethod() staticmethod() super() property()
file()

8. 标准类型分类

8.1 存储模型

一个能保存单个字面对象的类型为原子或标量存储
可以容纳多个对象的类型为容器存储

存储模型分类 python类型
标量/原子类型 数值,字符串
容器类型 列表、元组、字典

8.2 更新模型

根据对象创建成功后,它的值是否可以更新,分为可变对象与不可变对象
python基础03 python对象及其类型分类_第1张图片

更新模型分类 python类型
不可变类型 数字,字符串,元组
可变类型 列表、字典

8.3 访问模型

三种访问模式: 直接访问,顺序访问和映射访问

访问模型分类 python类型
直接访问 数字
顺序访问 字符串、列表、元组
映射访问 字典

你可能感兴趣的:(Python,python,开发语言)