物联网Python编程实战 课件 4.面向对象三大特性-封装_第1页
物联网Python编程实战 课件 4.面向对象三大特性-封装_第2页
物联网Python编程实战 课件 4.面向对象三大特性-封装_第3页
物联网Python编程实战 课件 4.面向对象三大特性-封装_第4页
物联网Python编程实战 课件 4.面向对象三大特性-封装_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象三大特性江苏电子职业学院Python物联网01封装面向对象封装概念所有属于同一个类的对象都具有相同的特性和操作面向对象程序设计有三大特性:封装、继承、多态,其最重要的一个特性就是封装。一个软件系统运行就是不同的类(模块)相互作用的结果。为了保证软件系统运行的稳定性、可扩展性我们希望做到模块内部高内聚、模块间低耦合。封装面向对象程序设计,通过类把属性和行为整合到一块,一个类就是一个模块。为了实现高内聚低耦合的特点,封装到对象或者类中的属性或方法,我们还可以严格控制对它们的访问权限。Python中可以有隐藏属性和方法。我们可以隐藏重要的属性和操作,提供接口方法对外提供服务,从而隐藏了内部的复杂逻辑。面向对象封装所有属于同一个类的对象都具有相同的特性和操作classFoo:def__init__(self,name,age):=nameself.age=agedefinfor(self):print("name:{},age:{}".format(,self.age))……obj1=Foo('wupeiqi',18)r()属性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)

r()

print()#能访问到

print(obj1.__age)#访问不到。

r()注意:不能通过=“aaaa”或obj1.__age=11去验证,不会报错,因为Python支持添加属性。访问限制所有属于同一个类的对象都具有相同的特性和操作访问限制-私有属性将数据隐藏起来就限制了类外部对数据的直接操作。此时类内应该提供相应的接口来允许类外部间接地操作数据。我们在设计接口时可以添加逻辑来对数据的操作进行严格地控制。在Python中,类似__xxx__的变量,以双下划线开头,并且以双下划线结尾的,是特殊变量,是可以直接访问的,不是私有变量。classStudent:def__init__(self,inname,inage):=innameself.__age=inagedefinfor(self):print("name:{},age:{}".format(,self.__age))#对外提供设置age接口,并附加类型检查的逻辑

defset_info(self,upage):ifisinstance(upage,int):self.__age=upageelse:raiseTypeError("age必须是整数")s1=Student("wulei",19)r()s1.set_info(20)r()访问限制所有属于同一个类的对象都具有相同的特性和操作访问限制-私有属性classATM:def__card(self):#插卡,隐藏函数

print('插卡')def__auth(self):#身份认证,隐藏函数

print('用户认证')def__input(self):#输入金额,隐藏函数

print('输入取款金额')def__print_bill(self):#打印小票,隐藏函数

print('打印账单')def__take_money(self):#取钱,隐藏函数

print('取款')def__take_exit(self):#退出,隐藏函数

print('退出')defwithdraw(self):#取款功能

self.__card()self.__auth()self.__input()self.__print_bill()self.__take_money()self.__take_exit()obj=ATM()obj.withdraw()同样在方法前面加双下划线,则该方法就被隐藏,如__init__()方法。就是一个私有方法,外部不能直接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论