python学习02

python对象的学习。 我对面向对象的知识不是很了解,以前写的所有代码都是面向过程的。 这里的学习需要用心一点。

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

身份: 通过内建函数id()可以获得对象的id值

类型: 对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数 type()查看 Python 对象的类型。

值: 对象表示的数据项。


标准类型:

数字(分为几个子类型,其中有三个是整型)
整型
布尔型
长整型
浮点型
复数型
字符串

列表
元组
字典

其他内建类型

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

类型对象和 type 类型对象

对象的一系列固有行为和特性(比如支持哪些运算,具有哪些方法)必须事先定义好。从这个角度看,类型正是保存这些信息的最佳位置。描述一种类型所需要的信息不可能用一个字符串来搞定,所以类型不能是一个简单的字符串,这些信息不能也不应该和数据保存在一起, 所以我们将类型定义成对象。

内建函数 type()。通过调用 type()函数你能够得到特定对象的类型信息:

>>> type(42)

<type 'int'>

None, Python 的 Null 对象

所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布
尔 True 或 False 值。空对象、值为零的任何数字或者 Null 对象 None 的布尔值都是 False。
下列对象的布尔值是 False。
None
False (布尔类型)
所有的值为零的数:

0 (整型)
(浮点型)
0L (长整型)
0.0+0.0j (复数)
"" (空字符串)
[] (空列表)
() (空元组)
{} (空字典)
值不是上面列出来的任何值的对象的布尔值都是 True

标准类型运算符

  对象值的比较, <, >, ==, <=, >=, !=

  对象身份比较

Python 提供了 is 和 is not
运算符来测试两个变量是否指向同一个对象。

a is b
这个表达式等价于下面的表达式
id(a) == id(b)

整数对象和字符串对象是不可变对象,所以 Python 会很高效的缓存它们。这会造成我们认为 Python 应该创建新对象时,它却没有创建新对象的假象。

>>> a = 1
>>> id(a)
8402824
>>> b = 1
>>> id(b)
8402824

在上面的例子中,a 和 b 指向了相同的整数对象。Python 仅缓存简单整数,因为它认为在 Python 应用程序中这些小整数会经常被用到。

布尔类型

布尔逻辑运算符 and, or 和 not 都是 Python 关键字,not 运算符拥有最高优先级,只比所有比较运算符低一级。and 和 or 运算符则相应的再低一级。

标准类型内建函数

Python 提供了一些内建函数用于这些基本对象类型: cmp(), repr(), str(), type(), 和等同于 repr()函数的单反引号(``) 运算符。

str()和 repr() (及 `` 运算符)

内建函数 str() 和 repr() 或反引号运算符(``) 可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好, 而 repr()函数得到的字符串通常可以用来重新获得该对象

type() 和 isinstance()

type()返回任意 Python 对象对象的类型,而不局限于标准类型。

类型工厂函数

Python 2.2 统一了类型和类, 所有的内建类型现在也都是类, 在这基础之上, 原来的所谓内建转换函数象 int(), type(), list() 等等, 现在都成了工厂函数。以前没有工厂函数的其他类型,现在也都有了工厂函数。


标准类型的分类

Python 的“基本内建数据对象原始类型”。

存储模型

一个能保存单个字面对象的类型我们称它为原子或标量存储,那些可容纳多个对象的类型,我们称之为容器存储。所有的 Python 容器对象都能够容纳不同类型的对象。

字符串看上去像一个容器类型,不过由于 Python 并没有字符类型,所以字符串是一个自我包含的文字类型。

标量/原子类型  数值(所有的数值类型),字符串(全部是文字)

容器类型  列表、元组、字典

更新模型

可变类型  列表,字典

不可变类型  数字,字符串,元组

访问模型

根据访问我们存储的数据的方式对数据类型进行分类。在访问模型中共有三种访问方式:直接存取,顺序,和映射。

对非容器类型可以直接访问。所有的数值类型都归到这一类。

序列类型是指容器内的元素按从 0 开始的索引顺序访问。一次可以访问一个元素或多个元素, 也就是大家所了解的切片(slice)。字符串, 列表和元组都归到这一类。我们前面提到过,
Python 不支持字符类型,因此,虽然字符串是简单文字类型,因为它有能力按照顺序访问子字符串,所以也将它归到序列类型。

映射类型类似序列的索引属性,它容纳的是哈希键-值对的集合。

访问模型分类

直接访问: 数字

顺序访问: 字符串, 列表, 元组

映射访问: 字典


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值