码迷,mamicode.com
首页 > 编程语言 > 详细

《Python核心编程》笔记 Python对象

时间:2015-03-04 06:17:48      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:python

第4章 Python对象

1、Python对象

Python使用对象模型来存储数据,构造任何类型的值都是一个对象。所有的对象都有三个特性:

  • 身份,可通过内建函数id()查看,这个值即该对象的内存地址。
  • 类型,可通过内建函数type()查看。
  • 值,对象表示的数据项。
>>> p = 12
>>> id(p)
31108092
>>> type(p)
<type ‘int‘>
>>> p
12
>>> 

2、标准类型

整型Integer,长整型Long integer,浮点型float,复数型complex number,布尔型bool,字符串string,列表list,元组tuple,字典dictionary。

3、其他内建类型

  • type类型对象

    type类型本身就是一个对象,它的类型为‘type’。

>>> type(1)
<type ‘int‘>
>>> type(type(1))
<typetype‘>
  • None——Python的Null对象

    Python有一个特殊的类型,称作Null对象或者NoneType,它只有一个值:None,None的布尔值为False。

  • 文件

  • 集合
  • 函数/方法
  • 模块

4、内部类型

内部类型我们一般不会过多关注与使用,了解一下即可。

  • 代码对象

    代码对象是编译过的Python源代码片段,可执行。可以通过内建函数compile()得到代码对象。代码对象可以被exec命令或者内建函数eval()执行。

  • 跟踪记录对象

    程序出现异常退出时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建:

>>> pri
   Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
   NameError: name ‘pri‘ is not defined
  • 切片对象

    当使用Python的切片语法时,就会创建切片对象。

  • 省略对象

    用于切片语法中,起记号作用。 如 str[::2]之类。

  • Xrange对象

    调用内建函数xrange()会生成一个XRange对象,xrange是range的兄弟版本,用于需要节省内存 或 range无法完成的超大数据集场合。

5、标准类型操作符

  • 对象值的比较
  • 对象身份比较

    这个涉及到Python“引用计数”的相关知识,上一篇文章中有总结。Python还提供了is和is not操作符来测试两个变量是否指向同一个对象。

>>> a = 1
>>> b =a
>>> c = 2
>>> a == b
True
>>> a is c
False
>>> a is not c
True
>>> a is b
True

我们通过id也可以直接判断它们是否指向同一对象:

>>> id(a),id(b),id(c)
(31108224, 31108224, 31108212)

6、标准类型内建函数

  • cmp(obj1,obj2)

    obj1大于obj2则返回1,小于返回-1,等于返回0。

>>> a,b,c,d = 1,2,3,2
>>> cmp(b,a),cmp(b,c),cmp(b,d)
(1, -1, 0)
  • type(obj)
  • str()、repr()、”操作符

    str()、repr()、”操作符都能够以字符串的方式获取对象的内容。str()获得的字符串可读性好,repr()获取的字符串通常可以用来重新获得该对象。

>>> str([1,2,3])
‘[1, 2, 3]‘
>>> repr([1,2,3])
‘[1, 2, 3]‘
>>> ‘[1,2,3]‘
‘[1,2,3]‘

7、类型工厂函数

Python2.2统一了类和类型。原来所谓的内建类型转换函数像int()、type()、list()等都成了工厂函数,也就是说他们看上去像函数,实质上是类,当调用它们时,实际上生成了该类型的一个实例,像工厂生成货物一样。

8、标准类型的分类

存储模型,更新模型,访问模型。

9、Python不支持的类型

  • char或byte
  • 指针
  • 整型

    Python中没有像C语言那样的int、short、long。当你使用一个整型数值超出范围时,python会自动返回一个长整型给你,python的长整型表示的数值范围很大。

  • float vs double

    Python的浮点类型float实际上是C的double。浮点型总是不精确的,故Python还提供了Decimals模块,它有任意精度,在处理金钱这类确定的值时,Decimals模块很有用。

原文:http://blog.csdn.net/u012162613/article/details/44049607

《Python核心编程》笔记 Python对象

标签:python

原文地址:http://blog.csdn.net/u012162613/article/details/44049607

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!