- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python的对象与型式
摘 要:作为动态语言,Python与其他静态编译语言有很大差别,其对象与型式的概念及关系非常让人迷惑。文章讨论Python程序设计语言中对象、型式与量的基本概念和关系,阐释这些概念的内涵与外延,指出初学者容易混淆之处,并给出教学过程中的一点心得体会。
关键词:Python;对象;型式;量
0 引 言
对于Python程序设计语言对象与型式的概念、关系等基本概念,如果没有清晰的认知,那么所编写的Python程序(脚本)重者无法运行或者得到错误的结果,轻者可能隐含难以察觉和调试的逻辑错误。因此,了解Python程序设计语言中对象、型式与量的基本概念和关系,掌握文字与量、名空间与作用域、全局量与局部量的概念以及这些基础概念对量(?ο螅┛赡茉斐傻挠跋熘凉刂匾?。
1 对象与型式
1.1 对 象
对象(object)是一种数据抽象或数据结构抽???,用来表示程序中需要处理或已处理的信息。在Python程序设计语言中,对象具有3个基本特征:本征值(identity)、型式(type)和值(value)。
本征值是用于区分不同对象的信息,因而特征之一是应具有唯一性。在Python程序设计语言中,本征值的表示方式与Python程序设计语言的具体实现有关,一种典型的实现策略是使用对象在内存中的存储地址,如CPython的实现。本征值的另外一个特征是有常性(immutability),即一经创设就不可改变。
在Python程序设计语言中,可以使用本征值函数id()返回某个特定对象的本征值,如在Cpython实现中,id(1)与id(obj)分别返回对象1与对象obj的本征值。相应地,也可以使用型式函数type()获取某个对象的型式。
在Python程序设计语言中,依据该对象是否可被改变,而分为有常对象(immutable)和无常对象(mutable)。
一般而言,Python程序设计语言中的对象无常性由其型式确定。典型的示例,如数值(numeric)、字符串(string)和元组(tuple)为有常对象,词典(dictionary)和列表(list)为无常对象;此外,有常容器(container)对象可能包含无常元素对象,前者值不可变,后者则不然。对于这两点,初学者必须时刻保持警觉,教师在教学过程中也必须阐释清楚。
1.2 型 式
型式(type),简称型,也称类型。在纯面向对象语言出现之前,type用来表示相同性质的数据集合。该集合虽然具有明确的操作集,厘定了可在该集合上实施的操作,但是并未在语言层面上对其进行明晰的操作集定义,即数据及其操作是分离的。
型,其最主要的目的是构造该型式的对象。这意味着任何对象都必须有确切的型式,且一般不可改变。
在面向对象技术出现之后,程序设计语言一般使用专用关键字来表示特定的将数据与操作辩证统一的数据结构――类,如C++程序设计语言中的关键字class(含扩充定义的struct)。在类中,对象属性(attribute)和行为(behavior)被统一描述和管理:对象属性是类的数据成员;对象行为是该类或该类的某个对象上可执行的操作成员,也称为方法(method)。
语言学上,class的翻译为“类”,作为型(type)的一种,也可以称为“类型”。这使得其与早期术语type之间,容易出现一定混淆――早期非class类型的type也被翻译成“类型”。为避免引起误解,将type更正为“型式”更佳,有助于区分class与type ――两者在程序设计语言层面上并非同一概念。
Python程序设计语言作为一种纯粹的面向对象语言,凡物皆为对象,这导致学生在学习时会面临以下两方面的困难。
(1)class与type的本质完全相同,类即为型,而型亦为类。此时,讨论其他编程语言中这两者的差异,就没有任何意义。因此,很多学习过其他面向对象语言的学生在学习Python程序设计语言时,反而会面临概念理解上的困难。这一点,授课教师必须在教学过程中表述清楚,以减少学生的困惑。
(2)型也是可以在程序中操作的对象。可以认为,型就是构造对象的模板,然而在实际语言实现中,存在这样一种情况,即一个对象本身实际上可以作为该型另外一个对象的模板。这意味着,型本身也可以作为对象来存储和管理,并在程序运行过程中作为模板,用于构造该型的对象。因此,我们可以将程序编译从静态引向动态。
示例代码一:
id(int)
1707211232
type(int)
id(float)
1707205632
type(float)
int is float
您可能关注的文档
最近下载
- DB37T 5093-2017非固化橡胶沥青防水涂料工程应用技术规程.docx
- 企业内部控制培训精完整版PPT课件-2024鲜版.ppt VIP
- 人乳头瘤病毒感染护理.pptx VIP
- 压疮品管圈成果汇报PPT幻灯片.ppt VIP
- 车险承保方案.pdf VIP
- 中华民族共同体概论教案合集(第一讲-第十六讲)附《中华民族共同体概论》课程大纲.doc VIP
- “中华民族共同体概论”课程教学与建设关键问题探讨.docx VIP
- 诸侯纷争与变法运动【课件】.pptx VIP
- 中国高血压防治指南(2024年修订版)_中国高血压防治指南修订委员会__.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学.pdf VIP
文档评论(0)