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 ‘int’>**
类型对象的类型是什么?
type(type(1))
得到 <type ‘type’>
所有类型对象的类型都是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 obj2obj1 与 obj2 是同一对象
obj1 is not obj2obj1 与 obj2 不是同一对象

5.3 布尔逻辑操作符

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

6. 标准类型内建函数

函数功能
cmp(a, b)返回整型i.
i<0, 则a<b
i>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类型
不可变类型数字,字符串,元组
可变类型列表、字典

8.3 访问模型

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

访问模型分类python类型
直接访问数字
顺序访问字符串、列表、元组
映射访问字典
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值