Python学习笔记4:Python对象

1、Python对象
所有Python对象都拥有三个特性:身份(只读,id())、类型(只读,type())和值。
Python类型也是对象。对象的值是否可更改被称为对象的可改变性(mutability)
对象属性:对象有属性、值和相关联的可执行代码(方法)

2、标准类型(基本数据类型)

  • 数字
  • Integer整型
  • Boolean布尔型
  • Long Integer长整型
  • Floating point real number 浮点型
  • Complex number复数型
  • String字符串
  • List列表
  • Tuple元组
  • Dictionary字典

3、其他内建类型

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

✪None
Null对象,或称为NoneType,只有一个值None,不支持任何运算也没有任何内建方法。None的布尔值总是False。
这些对象的布尔值是False:None、False、所有的值为0的数、0、0.0、0L、0.0+0.0j、“”、{}、()、[]。

4、内部类型
(1)代码对象
编译过的Python源代码片段是可执行对象。调用内建函数Compile()可以得到代码对象。代码对象可以被exec命令或eval()内建函数来执行。代码对象是函数的一个属性。
(2)帧对象
Python的执行栈帧。它的属性包括指向上一帧的链接,正在被执行的代码对象,本地及全局名称空间字典及当前指令等。(包含解释器在运行时所需知道的所有信息。)每次函数调用产生一个新的帧,每一个帧对象都会相应地创建一个C栈帧。跟踪记录对象用到帧对象。
(3)跟踪记录对象
异常发生时,一个包含针对异常的栈跟踪记录对象被创建。
(4)切片对象
使用Python扩展的切片语法时,会创建切片对象。切片对象也可以由内建函数slice()来生成。
(5)省略对象
省略对象用于扩展切片语法中,起记号作用。在切片语法中表示省略号。有一个唯一的名字Ellipsis,布尔值始终为True。
(6)Xrange对象
调用内建函数Xrange()会产生一个Xrange对象。

5、标准类型操作符
(1)比较对象值
< > <= >= == != <>
所有内建类型都支持比较运算。比较操作针对对象值进行。支持多个比较操作在同一行上进行。例:3<4<7
(2)对象身份比较
a is b <=>id(a)==id(b)
a is not b <=>id(a)!=id(b)
整型对象和字符串对象是不可变对象,所以Python会很高效地缓存它们。Python仅缓存简单整型。
(3)布尔运算
优先级:not>and>or

6、标准内建函数
(1)cmp()
用于比较两个对象obj1和obj2,。若obj1小于obj2,返回一个负整型;若obj1大于obj2,则返回一个正整型;若obj1等于obj2返回0。
(2)type()
得到一个对象的类型,并返回相应的type对象。
**(3)str()和repr()(及反引号()操作符)**
以字符串的方式获取对象的内容、类型、数值属性等信息。
obj==eval(repr((obj))
repr()和
在特性和功能方面完全一样,它们返回的是一个对象的“官方”字符串表示,绝大多数情况下可以通过求值运算(eval())重新得到该对象。str()有所不同,str()致力于生成一个对象的可读性好的字符串表示,适用于print。
(4)type()和isinstance()
isinstance(obj1,obj2)在obj1是obj2的一个实例,或者是obj2的子类的一个实例时,返回True,否则返回False。
Python不支持方法或函数重载。
Python2.2统一了类型和类。

7、工厂方法

  • int()/long()/float()/complex()
  • str()/unicode()/basestring()
  • list()/tuple()
  • type()
  • dict()
  • bool()
  • set()/frozenset()
  • object()
  • classmethod()
  • super()
  • property()
  • file()

8、标准类型的分类
标准类型–>基本内建数据对象原始类型
(1)存储模型

  • 原子/标量存储:一个能保存单个字面对象的类型。
  • 容器存储:可容纳多个对象的类型。所有的Python容器对象都能够容纳不同类型的对象。

(2)更新模型
可变类型允许值被更新,不可变对象则不允许更改它们的值。

  • 可变对象:列表、字典
  • 不可变对象:元组、数字、字符串

(3)访问模型

  • 直接访问:数字
  • 顺序访问:字符串、列表、元组(序列类型)
  • 映射访问:字典

Python不支持字符类型。

9、Python不支持的类型

  • char或byte
  • 指针
  • int vs short vs long
  • float vs double
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值