




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对象1删除对象目录创建对象2对象的属性和方法3【任务6-2】创建Car对象4__init__是类的专有方法,每当根据类创建新实例时,Python都会自动运行__init__。这是一个初始化手段,Python中的__init__方法用于初始化类的实例对象。创建对象的示例代码如下。创建对象>>>classCat:...'''再次模拟猫咪的简单尝试'''...#构造方法...def__init__(self,name,age):...#属性...=name...self.age=age...defsleep(self):...'''模拟猫咪被命令睡觉'''...return'%d岁的%s正在沙发上睡懒觉。'%(self.age,)...defeat(self,food):...'''模拟猫咪被命令吃东西'''...self.food=food...return'%d岁的%s在吃%s'。%(self.age,,self.food)>>>cat1=Cat('Tom',3)1删除对象目录创建对象2对象的属性和方法3【任务6-2】创建Car对象4删除对象时,同样会默认调用一个方法,这个方法为析构方法。__del__也是类的专有方法,当使用del语句删除对象时,会调用__del__本身的析构函数。当对象在某个作用域中调用完毕,跳出其作用域时,析构函数也会被调用一次,目的是释放内存空间。使用__del__方法删除对象的具体示例代码如下。删除对象>>>classAnimal:...#构造方法...def__init__(self):...print('---构造方法被调用---')...#析构方法...def__del__(self):...print('---析构方法被调用---')>>>cat=Animal()---构造方法被调用---删除对象>>>print(cat)<__main__.Animalobjectat0x0000027942380450>>>>delcat---析构方法被调用--->>>print(cat)NameError:name'cat'isnotdefined.1删除对象目录创建对象2对象的属性和方法3【任务6-2】创建Car对象4学习了类的定义过程和方法后,可以尝试创建具体的对象来进一步学习面向对象程序设计。创建对象的示例代码如下。对象的属性和方法classCat:def__init__(self,name,age):=nameself.age=agedefsleep(self):''''模拟猫咪被命令睡觉'''return'%d岁的%s正在沙发上睡懒觉。'%(self.age,)对象的属性和方法defeat(self,food):'''模拟猫咪被命令吃东西'''self.food=foodreturn'%d岁的%s在吃%s。'%(self.age,,self.food)>>>#创建对象>>>cat1=Cat('Tom',3)>>>cat2=Cat('Jack',4)>>>#访问对象的属性>>>print('Cat1的名字为:',对象的属性和方法Cat1的名字为:Tom>>>print('Cat2的名字为:',)Cat2的名字为:Jack>>>#访问对象的方法>>>print(cat1.sleep())3岁的Tom正在沙发上睡懒觉。>>>print(cat2.eat('fish'))4岁的Jack在吃fish。对象属性由类的每个实例对象拥有。因此每个对象有自己对这个域的一份备份,即它们不是共享的。在同一个类的不同实例对象中,即使对象的属性有相同的名称,也互不相关。对于类属性和对象属性,如果在类方法中引用某个属性,那么该属性必定是类属性。要修改类属性,如果在类外,那么可以通过类对象修改;如果在类里面,那么只能在类方法中进行修改。1.对象属性对象方法和类的方法是一样的。在定义类的方法时,程序没有为类的方法分配内存,只有在创建具体实例对象时,程序才会为对象的每个数据属性和方法分配内存。类的方法是由def关键字定义的,具体定义格式与普通函数的定义格式相似,只是类的方法的第一个参数需要是self参数。用普通函数可以实现对对象方法的引用,示例代码如下。2.对象方法>>>cat1=Cat('Tom',3)>>>sleep=cat1.sleep>>>print(sleep())3岁的Tom正在沙发上睡懒觉。>>>cat2=Cat('Jack',4)>>>eat=cat2.eat>>>print(eat('fish'))4岁的Jack在吃fish。如果要获取上述代码中对象的数据属性,并不需要通过sleep、eat等函数,直接在程序外部调用数据属性即可,示例代码如下。3.私有化>>>print(cat1.age)3>>>print()Jack尽管直接调用的方法很方便,但是破坏了类的封装性,这是因为对象的状态对于类外部而言应该是不可访问的。为防止程序开发人员在无意中修改对象的状态,需要对类的数据属性和方法进行私有化。Python提供了方法以达到私有化的目的。为了让方法的数据属性或方法变为私有,只需要在属性或方法的名字前面加上双下画线即可,修改前文创建的Cat类代码的示例如下。3.私有化>>>classCat:...def__init__(self,name,age):...self.__name=name...self.__age=age...defsleep(self):...return'%d岁的%s正在沙发上睡懒觉。'%(self.__age,self.__name)3.私有化...defeat(self,food):...self.__food=food...return'%d岁的%s在吃%s。'%(self.__age,self.__name,self.__food)...defgetAttribute(self):...returnself.__name,self.__age>>>#创建对象>>>cat1=Cat('Tom',3)>>>cat2=Cat('Jack',4)>>>print('Cat1的名字为:',)#从外部访问对象的属性,会发现访问不了AttributeError:'Cat'objecthasnoattribute'name'3.私有化>>>print('Cat2的名字为:',)AttributeError:'Cat'objecthasnoattribute'name'>>>print(cat1.sleep())#只能通过设置好的接口函数来访问对象3岁的Tom正在沙发上睡懒觉。>>>print(cat2.eat('fish'))4岁的Jack在吃fish。>>>print(cat1.getAttribute())('Tom',3)在程序外部直接访问私有化属性是不允许的,只能通过设置好的接口函数去调取对象的信息。通过双下画线实现的私有化其实是“伪私有化”,实际上还是可以从外部访问这些私有化属性,示例代码如下。3.私有化>>>print(cat1._Cat__name)Tom>>>print(cat1._Cat__age)31删除对象目录创建对象2对象的属性和方法3【任务6-2】创建Car对象4【任务6-2】创建Car对象任务分析任务描述在Python编程中,析构函数是一个特殊的方法,用于在对象被销毁时自动执行清理操作。根据创建的Car类,为其定义一个析构函数。(1)使用class语句创建Car类。(2)将Car类实例化,添加newWheelNuw和newColor两个属性。(3)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自然之债协议书
- 苏州就业协议书
- 退股补充协议书
- 调解道路协议书
- 合伙开餐厅合同协议书
- 移交存款协议书
- 劳务派遣人互助协议书
- 穿越管线协议书
- 湖北省分行合作协议书
- 医护工作者合同协议书
- 外科学(2)知到章节答案智慧树2023年温州医科大学
- 火电厂典型危险点分析预控措施
- YS/T 525-2009三硫化二锑
- GB/T 18915.1-2013镀膜玻璃第1部分:阳光控制镀膜玻璃
- GB 28375-2012混凝土结构防火涂料
- 杆塔基础分坑
- DB33T 2226-2019 空气负(氧)离子观测与评价技术规范-纯图
- 高管人员绩效考核方案
- DB32-T 4338-2022 高速公路桥梁支座安装施工技术规范
- 直螺纹套筒进场检查记录
- Q∕GDW 12177-2021 供电服务记录仪技术规范
评论
0/150
提交评论