您现在的位置是:首页 > 技术资料 > Python的对象与型式
推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

Python的对象与型式

更新时间:2019-12-24 19:39:37 大小:581K 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

作为动态语言,Python与其他静态编译语言有很大差别,其对象与型式的概念及关系非常让人迷惑。文章讨论Python程序设计语言中对象、型式与量的基本概念和关系,阐释这些概念的内涵与外延,指出初学者容易混淆之处,并给出教学过程中的一点心得体会。


部分文件列表

文件名 大小
Python的对象与型式.pdf 581K

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
9 期  
计 算 机 教 育  
Computer Education  
2017 9 10 日  
1
专题策划——理解和运用计算生态 推动Python语言教学改革(二)  
G642  
中图分类号:  
文章编号:1672-5913(2017)09-0001-05  
Python 的对象与型式  
乔 林  
(清华大学 计算机科学与技术系,北京 100084)  
摘 要:作为动态语言,Python 与其他静态编译语言有很大差别,其对象与型式的概念及关系非常让  
人迷惑。文章讨论 Python 程序设计语言中对象、型式与量的基本概念和关系,阐释这些概念的内涵与  
外延,指出初学者容易混淆之处,并给出教学过程中的一点心得体会。  
关键词Python;对象;型式;量  
言的具体实现有关,一种典型的实现策略是使用  
0 引 言  
对象在内存中的存储地址,CPython 的实现。  
Python 程序设计语言对象与型式的概  
本征值的另外一个特征是有常性(immutability,  
念、关系等基本概念,如果没有清晰的认知,那  
即一经创设就不可改变。  
么所编写Python 程序(脚本者无法运行或  
Python 程序设计语言中,可以使用本征  
者得到错误的结果,轻者可能隐含难以察觉和调  
值函id() 返回某个特定对象的本征值,如在  
试的逻辑错误。因此,了Python 程序设计语  
Cpython 实现中,id(1) id(obj) 分别返回对1  
言中对象、型式与量的基本概念和关系,掌握文  
与对obj 的本征值。相应地,也可以使用型式  
字与量、名空间与作用域、全局量与局部量的概  
type() 获取某个对象的型式。  
念以及这些基础概念对量(对象能造成的影  
Python 程序设计语言中,依据该对象是  
响至关重要。  
否可被改变,而分为有常对象(immutable无  
常对象(mutable。  
1 对象与型式  
一般而Python 序设计语言中的对  
象无常性由其型式确定。典型的示例,如数值  
numeric字符串(string元组(tuple有  
常对象,词典(dictionary列表(list无常  
对象;此外,有常容器(container象可能包  
含无常元素对象,前者值不可变,后者则不然。  
对于这两点,初学者必须时刻保持警觉,教师在  
教学过程中也必须阐释清楚。  
1.1 对 象  
对象(object一种数据抽象或数据结构  
抽象,用来表示程序中需要处理或已处理的信  
息。Python 程序设计语言中,对象具3 个  
基本特征:本征值(identity型式(type值  
value。  
本征值是用于区分不同对象的信息,因而特  
征之一是应具有唯一性。Python 程序设计语  
言中,本征值的表示方式Python 程序设计语  
1.2 型 式  
型式(type简称型,也称类型。在纯面  
基金项目:国家自然科学基金项目“碎片化知识聚合方法研究61532015。  
作者简介:乔林,男,副教授,研究方向为并行编译优化、知识挖掘与机器学习等,。  
计 算 机 教 育  
Computer Education  
2
2017  
向对象语言出现之前,type 用来表示相同性质的  
数据集合。该集合虽然具有明确的操作集,厘定  
了可在该集合上实施的操作,但是并未在语言层  
面上对其进行明晰的操作集定义,即数据及其操  
作是分离的。  
程序运行过程中作为模板,用于构造该型的对  
此,我们可以将程序编译从静态引向动态。  
示例代码一:  
>>> id(int)  
1707211232  
>>> type(int)  
<class 'type'>  
>>> id(oat)  
1707205632  
>>> type(oat)  
<class 'type'>  
>>> int is oat  
False  
型,其最主要的目的是构造该型式的对象。  
这意味着任何对象都必须有确切的型式,且一般  
不可改变。  
在面向对象技术出现之后,程序设计语言一  
般使用专用关键字来表示特定的将数据与操作辩  
证统一的数据结构——类,C++ 程序设计语  
言中的关键class(含扩充定义struct在类  
对象属attributebehavior被  
统一描述和管理:对象属性是类的数据成员;对  
象行为是该类或该类的某个对象上可执行的操作  
成员,也称为方法(method。  
# 试试将一个浮点型赋值给一个整型  
>>> int = oat  
>>> id(int)  
1707205632  
>>> type(int)  
<class 'type'>  
>>> id(oat)  
1707205632  
>>> type(oat)  
<class 'type'>  
>>> int is oat  
True  
语言学class 翻译作为型  
type一种,也可以称为“类型这使得其  
与早期术type 之间,容易出现一定混淆——早  
class 类型type 也被翻译成“类型为避  
免引起误解,type 更正为“型式佳,有助  
于区class type ——两者在程序设计语言层  
面上并非同一概念。  
>>>  
1.3 之相  
Python 程序设计语言作为一种纯粹的面向对  
象语言,凡物皆为对象,这导致学生在学习时会  
面临以下两方面的困难。  
Python 程序设计语言中,类具有明确的  
型。类的定义语句负责创建(构造个类型,  
而类型用于创建(构造类型的对象(object。  
构造类的一个实际对象的过程称为具象化  
instantiation也称为实例化。实例化的结果为  
具象(instance object也称实例对象。  
实际上,Python 程序设计语言中,类定  
义结束时,系统将构造(创建该类的一个型  
象。如前所述,型亦为对象,因此,按照此型定  
义出的对象称为对象(class object也称类象或  
类对象。  
1class type 的本质完全相同,类即为  
型,而型亦为类。此时,讨论其他编程语言中这  
两者的差异,就没有任何意义。因此,很多学习  
过其他面向对象语言的学生在学Python 程序  
设计语言时,反而会面临概念理解上的困难。这  
一点,授课教师必须在教学过程中表述清楚,以  
减少学生的困惑。  
2也是可以在程序中操作的对象。可以  
认为,型就是构造对象的模板,然而在实际语言  
实现中,存在这样一种情况,即一个对象本身实  
际上可以作为该型另外一个对象的模板。这意味  
着,型本身也可以作为对象来存储和管理,并在  
对于初学者而言,这种概念上的差别非常容  
易让人迷惑。类(型身就是构造对象的模板,  
那么类对象或型对象是什么?在教学过程中,教  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载