《Python核心编程》第4章笔记

    Python对象
    Python使用对象模型来存储数据。构造任何类型的值都是一个对象
    三个特性:
    身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址
    类型:对象的类型决定了该对象可以保存什么类型的值,可以进行说明样的操作以及遵循什么样的规则。可以用内建函数type()查看Python对象的类型。因为Python中类型也是对象,所以type()返回的是对象而不是简单的字符串
    值:对象表示的数据项
    这三个特性在对象创建的时候就被赋值,除值之外,其他两个特性都是只读的。对新式类型和类,对象的类型也是可以改变的,不建议初学者这样做

    代码对象
    代码对象是编译过的Python源代码片段,它是可执行对象。通过调用内建函数compile()可以得到代码对象。代码对象可以被exec命令或eval()内建函数来执行。
    代码对象本身不包含任何执行环境信息,它是用户自定义函数的核心,在被执行时动态的获得上下文。(事实上代码对象是函数的一个属性)一个函数除了有代码对象属性以外,还有一些其他函数必须的属性。包括函数名、文档字符串、默认参数、及全局命名空间等。

    帧对象
    帧对象表示Python的执行栈帧。帧对向包含了Python解释器在运行时所需要知道的所有信息。它的属性包括指向上一帧的链接,正在被执行的代码对
    象,本地及全局名称空间字典及当前指令等。每次函数调用产生一个新的帧,每一个帧对象都会相应创建一个C栈帧。用到帧对象的一个地方是跟踪记录对象。

    跟踪记录对象
    当你的代码出错时,Python就会引发一个异常。如果异常未被捕获和处理,解释器就会退出脚本运行,显示诊断信息
    当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建。如果一个异常有自己的处理程序,处理程序就可以访问这个跟踪记录对象。

    切片对象
    当使用Python扩展的切片语法时,就会创建切片对象。扩展的切片语法允许对不同的索引切片操作,包括步进切片、多维切片和省略切片。切片对象也可以由内建函数slice()来生成。

    省略对象
    省略对象用于扩展切片语法中,起记号作用。这个对象在切片语法中表示省略号。类似Null对象None,省略对象有一个唯一的名字Ellipsis,它的布尔值始终未True。

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

    标准类型内建函数

    函数 功能
    cmp(obj1,obj2) 比较obj1和obj2,根据比较结果返回整型i: i < 0 if obj1 < obj2 ; i > 0 if obj1 > obj2 ; i = 0 if obj1 = obj2
    repr(obj)或`obj` 返回一个对象的字符串表示
    str(obj) 返回对象适合可读性好的字符串表示
    type(obj) 得到一个对象的类型,并返回相应的type对象

    类型工厂函数
    Python2.2统一了类型和类,所有的内建类型现在也都是类,在这基础之上,原来的所谓内建转换函数想init()、type()、list()等,现在都成了工厂函数。

    标准类型的分类
    “基本” 是指这些类型都是Python提供的标准或核心类型
    “内建” 是由于这些类型是Python默认就提供的
    “数据” 是因为他们用于一般数据存储
    “对象” 是因为对象是数据和功能的默认抽象
    “原始” 是因为这些类型提供的是最底层的粒度数据存储
    “类型” 是因为他们就是数据类型

    存储模型

    分类 Python类型
    标量/原子类型 数值(所有的数值类型)、字符串(全部是文字)
    容器类型 列表、元组、字典

    更新模型

    分类 Python类型
    可变类型 列表、字典
    不可变类型 数字、字符串、元组

    访问模型

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

    Python不支持的类型
    char或byte:Python没有char或byte类型来保存单一字符或8位整型。你可以使用长度为1的字符串表示字符或8位整型
    指针:Python替你管理内存,因此没必要访问指针。在Python中,一切都是指针
    int vs short vs long:Python的普通整型相当于标准整型类型,不需要类似C语言中的这三种整型
    float vs double:C语言有单精度和双精度两种浮点类型。Python的浮点类型实际上是C语言的双精度浮点类型

    Mon Mar 25 11:32:58 CST 2013

    • 本文由 发表于 2013-03-25
    • 转载请务必保留本文链接:https://linuxeye.com/302.html
    腾讯云COS上传、批量删除工具(Python) 脚本

    腾讯云COS上传、批量删除工具(Python)

    腾讯云对象存储COS是类似于阿里云OSS,相比OSS,COS提供每月免费额度:存储空间50G、外网访问流量10G(内网免费)、免费读请求100万次、写请求10万次。对网站备份来说不错,但是,腾讯云提供...
    Python多线程抓取代理服务器 Linux

    Python多线程抓取代理服务器

    Python作为一门功能强大的脚本语言来说,经常被用来写爬虫程序,下面是Python爬虫多线程抓取代理服务器。 年前是用 //linuxeye.com/340.html 来抓取代理服务器的,谁知道过完...
    Python实现文件的全备份和差异备份 Linux

    Python实现文件的全备份和差异备份

    之前有写利用md5方式来做差异备份,但是这种md5方式来写存在以下问题: md5sum获取有些软连接的MD5值存在问题 不支持对空目录进行备份,因为md5sum无法获取空目录的md5值 权限的修改md...
    匿名

    发表评论

    匿名网友