- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Python开发技术应用》
02-7 工厂函数、可变与不可变对象
教学环节
工厂函数
不可变对象
可变对象
1
2
3
在之前的课程中,我们已经见过了一些工厂函数,我们用float和int函数来转换数据类型,我们也可以直接用这些工厂函数产生新的变量。
2.7.1 工厂函数
a=int(2)
b=float(2.7)
a
2
b
2.7
在Python中一切都是对象。根据面向对象编程的概念,对象是类的实例。所以,整数、浮点数或其它数据类型都是内建的类,而工厂函数其实是这些类的构造方法,你通过构造方法产生了该类的实例。
2.7.2 不可变对象
不可变对象,顾名思义,其内容不可改变。在前面介绍的数据类型中,数字型(整型和浮点型)、布尔型、None、字符串、元组、不可变集合(FrozenSet)都是不可变对象。以数字型为例,当你将一个数字赋值给一个变量时,实际上是这个数字链接到了该变量,或者说该变量引用了这个数字。
Python中的变量存放的是对象引用,所以对于不可变对象而言,尽管对象本身不可变,但变量对于对象的引用是可变的。这么看来,不可变对象似乎也可以变化了。
在对象重新赋值的前后,不可变的对象的特征没有变,依然是不可变对象,变的只是创建了新对象,改变了变量的对象引用。
2.7.2 不可变对象
2.7.3 可变对象
可变对象有列表、字典和(可变的)集合,所谓可变对象是指,对象的内容是直接可变的,也就是说,无需重新赋值便可更改其内容。可变对象的变化方式基于对象自身的方法(你可以像调用函数一样调用对象的方法,事实上,在C++里常常把对象的方法叫做成员函数),例如列表,我们已经知道它是一种类似于C语言中数组的数据类型,它有一些方法可以用来修改自己。下面的代码演示了列表对象如何通过append()方法来追加一个元素(即成员数据)。
list1 = [1,2,3]
list1.append(5)
list1
[1, 2, 3, 5]
上面的代码说明了一个可变对象是如何变化的——不需要再次赋值。
你可能已经注意到了,不可变对象的类型要比可变对象多。那么,为什么要设计出这么多的不可变对象呢?因为不可变对象一旦创建,其内部的数据就不能修改,从而减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。在编写程序时,如果情况允许,就应该尽量使用不可变对象。
2.7.3 可变对象
THANK YOU!
您可能关注的文档
- 环境材料概论 课件全套 第1--9章 绪论、吸附材料 ---环境材料的绿色设计.pptx
- 非参数统计——基于Python 课件全套 第1--9章 非参统计简介---机器学习.pdf
- 用微课学Python云开发技术应用 课件 01-0 《Python开发技术应用》课程简介.pptx
- 用微课学Python云开发技术应用 课件 01-1 Python的起源和发展(终稿).pptx
- 用微课学Python云开发技术应用 课件 01-2 Python的特性和优势(终稿).pptx
- 用微课学Python云开发技术应用 课件 01-3 Python虚拟机(终稿).pptx
- 用微课学Python云开发技术应用 课件 01-4 Python版本差异及下载获取(终稿).pptx
- 用微课学Python云开发技术应用 课件 01-5 在Windows下安装Python(终稿).pptx
- 用微课学Python云开发技术应用 课件 01-6 编写第一个程序(终稿).pptx
- 用微课学Python云开发技术应用 课件 01-7 在Linux下编译安装Python(终稿).pptx
- 用微课学Python云开发技术应用 课件 02-8 输入字符和数值(终稿).pptx
- 用微课学Python云开发技术应用 课件 02-9 如何打印输出(终稿).pptx
- 用微课学Python云开发技术应用 课件 03-1 代码层次结构与程序流程图(终稿).pptx
- 用微课学Python云开发技术应用 课件 03-2 单条件分支结构 (终稿).pptx
- 用微课学Python云开发技术应用 课件 03-3 多条件分支和嵌套分支(终稿).pptx
- 用微课学Python云开发技术应用 课件 03-4 单句多条件、短路逻辑、多个if语句块 (终稿).pptx
- 用微课学Python云开发技术应用 课件 03-5 循环的三种基本形式 (终稿).pptx
- 用微课学Python云开发技术应用 课件 03-6 循环中的控制语句 (终稿).pptx
- 用微课学Python云开发技术应用 课件 03-7 for循环 (终稿).pptx
最近下载
- CNAS认可实验室质量手册及程序文件模版及表格.docx
- 第四章(3) 软镜聚合物、硅水凝胶、制造工艺.pdf VIP
- 标准图集-07FK02-防空地下室通风设备安装.pdf VIP
- 消除艾滋病梅毒和乙肝母婴传播培训总结.docx VIP
- 二年级数学口算天天练.docx VIP
- 2025年西安铁路职业技术学院单招考试文化素质数学考试历年机考真题集含完整答案详解【考点梳理】.docx VIP
- 第四章(2) 软镜参数设计.pdf VIP
- 民航专业工程施工工期标准.pdf VIP
- 全国高中生物理竞赛课件11:天体运动种种.pptx VIP
- 2024年6月全国大学英语CET六级真题和答案解析(第一套) .pdf VIP
原创力文档


文档评论(0)