- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. 第三章 类型和对象
Python 程序中的一切数据都是对象。对象包括自定义对象及基本的数据类型如数值、字符串、
列表、字典等。你能够以类或扩展类型的方式创建自定义对象。本章主要描述 Python对象模型
及第四章--运算符与表达式中要用到的一些预备知识。
1.1. 术语
程序中的一切数据都是对象,每个对象都有三个基本属性,即标识(类似人的标识证号)、类型
和值。
例如,当你写下 a=42 这行代码,你就创建了一个值为 42 的整数对象。 type()和id()函数用
来查看对象的类型标识。id(a)可以查看该对象的标识(当前的实现是该对象在内存中的位置)。在
这个例子中,a就是这个位置的引用。
一个对象的类别决定了可以对该对象进行何种操作(如,这个对象有长度吗?)。当一个特定类型
的对象被创建时,这个对象被称为该类型的一个实例(注意:不要将类型的的实例和用户自定义
类的实例混淆)。在一个对象被创建之后,它的标识和类型就再不能被改变。某些对象的值是可
变的,这些对象就被称为可变对象(mutable);另一些对象的值是不可变的,那就被称为不变对象
(immutable)。某类对象可以包含其它对象的引用,我们称这类对象为容器。
注1:关于类型的不可改变
从python2.2开始,Python开发小组开始有步骤的合并某些类别和类,因此书中的某些结论可能
不是百分之百精确和完整。在某些特定条件下,有可能允许改变一个对象的类型。但是,在本
手册扩展修订之前,我们就应该一如既往的认为这些经典类型是不可改变的。考虑到兼容性,
python2.2和2.3也是这样默认处理的。
注2:不变对象的不可变并不是绝对的,当一个不变容器对象包含一个可变对象的引用时,可变
对象的值变化会引起该不变容器对象的值发生变化。这种情况下,我们仍然认为该容器对象为
不变对象,因为该容器所包含并不是引用对象的值,而仅仅是该对象的引用,这里的引用可以
理解为该对象的内存地址。不管被包含对象的值如何变化,被包含对象的引用确实是始终不变
的)。一个对象是否可变取决于它的类型,举例来说,数字、字符串、tuple类型是不可变类型,
字典与列表是可变类型。
--WeiZhong
除了保存值以外,许多对象还拥有一系列的属性(attribute)。广义的属性是指对象的相关数据或
者该对象能够具有的行为(如狗对象拥有颜色体重等相关数据,还拥有叫、吃、跑等行为,这
些都是对象的广义的属性),狭义的属性只包含对象的相关数据,对于对象的行为,更常用的叫
法是方法(method)。方法是对象可调用的属性,一个对象有多少个方法(method),它就具有多少
种行为。要访问一个对象的属性或者调用一个对象方法,使用点(.)操作符:
a=3+4j # 创建一个复数
r=a.real # 取得一个复数的实部,访问该对象的一个属性
b=[1,2,3] # 创建一个列表)
b.append(7) # 使用 append 方法为列表加入新的元素
1.2. 对象的标识与类型
内建函数id()返回一个对象的标识。该返回值是一个整数,目前的实现该整数通常就是对象在
内存中的位置。is 运算符用来比较两个对象的标识。内建函数type()返回一个对象的类型:
Togglelinenumbers
1# 比较两个对象
2defcompare(a,b):
3 printTheidentityofais, id(a)
4 printTheidentityofbis, id(b)
5 ifaisb:
6 printaandbarethesameobject
7 ifa==b:
8 printaandbhavethesamevalue
9 iftype(a)istype(b):
10 printaandbhavethesametype
对象的类型也是对象,这个对象具有唯一性。对同一类型的所有实例应用type()函数总是会返回
同一个类型对象。因此,类型之间可以使用 is 运算符来进行比较。标准模块 types 内包含所
有内建类型对象,我们可以通过它来完成类型检查工作:
Togglelinenumbers
1importtypes
2iftype(s)istypes.ListType:
3 printIs alist
4else:
5 pr
您可能关注的文档
- 数据库原理课程设计文档内容要求和工作流程.pdf
- 城市功能定位的理论与方法思考.pdf
- 关于灰色模型累加生成效果.pdf
- 苏皖地区孤峰组放射虫动物群和其古环境意义.pdf
- 嵌人式linux上can设备驱动程序设计.pdf
- 北京东联网格及戴尔共同为最终客户提供高效的IP SAN解决方案.pdf
- VaR数学模型和其计算方法_刘红波.pdf
- 选修1-1教案3.3.1函数的单调性及导数.doc
- 焦炭块度的影响因素与控制技术.pdf
- 继电保护整定计算软件通用性研究.pdf
- 建设工程质量安全管理标准化图集(安全篇2024版)ppt230页.pptx
- 《油气储存企业安全风险评估细则(2025年修订)》解读.pptx
- 2025年《危大工程专项施工方案严重缺陷清单专题培训》ppt120页_1230.pptx
- 中建分部分项检验批划分方案、资料目录策划编制要点ppt75页.pptx
- 某项目智慧工地示范项目应用成果介绍75页_5843.pptx
- 2025年中国风筝无人机LED夜光编队编程师应聘面试模拟题及答案.doc
- 2025年中国鞍钢集团招聘笔试题库附答案.doc
- 2025年中国鞍钢集团招聘面试预测题及答案.doc
- 临床器械实验培训试题及答案2025年版.docx
- 中石化《两个责任》解读分析.ppt
文档评论(0)