- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
面向对象三大特性江苏电子职业学院Python物联网
01封装
面向对象封装概念所有属于同一个类的对象都具有相同的特性和操作面向对象程序设计有三大特性:封装、继承、多态,其最重要的一个特性就是封装。一个软件系统运行就是不同的类(模块)相互作用的结果。为了保证软件系统运行的稳定性、可扩展性我们希望做到模块内部高内聚、模块间低耦合。封装面向对象程序设计,通过类把属性和行为整合到一块,一个类就是一个模块。为了实现高内聚低耦合的特点,封装到对象或者类中的属性或方法,我们还可以严格控制对它们的访问权限。Python中可以有隐藏属性和方法。我们可以隐藏重要的属性和操作,提供接口方法对外提供服务,从而隐藏了内部的复杂逻辑。
面向对象封装所有属于同一个类的对象都具有相同的特性和操作classFoo:def__init__(self,name,age):self.name=nameself.age=agedefinfor(self):print(name:{},age:{}.format(self.name,self.age))……obj1=Foo(wupeiqi,18)obj1.infor()属性name,age和方法infor被封装到了类Foo中。类Foo作为一个整体对外提供服务或者对外寻求服务。通过创建对象,实参‘wupeiqi’,18被封装到了对象obj1中。
访问限制所有属于同一个类的对象都具有相同的特性和操作访问限制-私有属性Python采用双下划线开头的方式将属性隐藏起来(设置成私有的)。在类的外部不能直接访问双下划线开头的私有属性。但是在类内部是可以直接访问双下划线开头的私有属性的。classStudent:
def__init__(self,inname,inage):
self.name=inname
self.__age=inage#将age设为私有__age
definfor(self):#类内部可以访问私有属性
print(name:{},age:{}.format(self.name,self.__age))
obj1=Student(wupeiqi,18)
obj1.infor()
print(obj1.name)#能访问到
print(obj1.__age)#访问不到。
obj1.infor()注意:不能通过obj1.name=“aaaa”或obj1.__age=11去验证,不会报错,因为Python支持添加属性。
访问限制所有属于同一个类的对象都具有相同的特性和操作访问限制-私有属性将数据隐藏起来就限制了类外部对数据的直接操作。此时类内应该提供相应的接口来允许类外部间接地操作数据。我们在设计接口时可以添加逻辑来对数据的操作进行严格地控制。在Python中,类似__xxx__的变量,以双下划线开头,并且以双下划线结尾的,是特殊变量,是可以直接访问的,不是私有变量。classStudent:def__init__(self,inname,inage):self.name=innameself.__age=inagedefinfor(self):print(name:{},age:{}.format(self.name,self.__age))#对外提供设置age接口,并附加类型检查的逻辑defset_info(self,upage):ifisinstance(upage,int):self.__age=upageelse:raiseTypeError(age必须是整数)s1=Student(wulei,19)s1.infor()s1.set_info(20)s1.infor()
访问限制所有属于同一个类的对象都具有相同的特性和操作访问限制-私有属性classATM:def__card(self):#插卡,隐藏函数print(插卡)def__auth(self):#身份认证,隐藏函数print(用户认证)def__input(self):#输入金额,隐藏函数print(输入取款金额)def__print_bill(self):#打印小票,隐藏函数print(打印账单)def__take_money(
您可能关注的文档
- 逆向工程与快速成型技术应用 第4版 课件 项目 1 逆向工程技术.pptx
- 逆向工程与快速成型技术应用 第4版 课件 项目 3 数据处理及数模重构.pptx
- 逆向工程与快速成型技术应用 第4版 课件 项目 4 快速成型技术概述.pptx
- 逆向工程与快速成型技术应用 第4版 课件 项目 5 快速成型数据模型的前处理.pptx
- 逆向工程与快速成型技术应用 第4版 课件 项目 6 快速成型材料及后处理.pptx
- 逆向工程与快速成型技术应用 第4版 课件全套 1-1 掌握逆向工程技术的定义与实施流程--- 6-3 不同工艺成型件的后处理流程.pptx
- 逆向工程与快速成型技术应用 第4版 思考题及答案汇总 孙春华 项目1--6 逆向工程技术的认知---快速成型材料及后处理.docx
- 逆向工程与快速成型技术应用 第4版 思考题及答案 项目四 快速成型技术概述.docx
- 逆向工程与快速成型技术应用 第4版 思考题及答案 项目六 快速成型材料及后处理.docx
- 逆向工程与快速成型技术应用 第4版 思考题及答案 项目五 快速成型数据模型的前处理 .docx
- 物联网Python编程实战 课件 4.气象数据采集系统软件设计.pptx
- 物联网Python编程实战 课件 4.任务2-2AGV小车二维码识别-(图片感兴趣区域).pptx
- 物联网Python编程实战 课件 5.Python集合.pptx
- 物联网Python编程实战 课件 5.Python循环语句.pptx
- 物联网Python编程实战 课件 5.Python字典.pptx
- 物联网Python编程实战 课件 5.面向对象三大特性 -继承.pptx
- 物联网Python编程实战 课件 5.任务2-2AGV小车二维码识别-(图片感兴趣区域参数设置).pptx
- 物联网Python编程实战 课件 5.圆形识别.pptx
- 物联网Python编程实战 课件 6.Python循环嵌套.pptx
- 物联网Python编程实战 课件 6.面向对象三大特性-多态.pptx
文档评论(0)