Python 封装
2017-08-23 00:36
99 查看
定义:
封装不仅仅是隐藏属性和方法是具体明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码;而外部使用用者只知道一个接口(函数),只要接口(函数)名、参数不变,使用者的代码永远无需改变。这就提供一个良好的合作基础——或者说,只要接口这个基础约定不变,则代码改变不足为虑。
封装可分为封装属性与封装函数
实例:
#1:封装数据属性:将属性隐藏起来,然后对外提供访问属性的接口,关键是我们在接口内定制一些控制逻辑从而严格控制使用对数据属性的使用 class People: def __init__(self,name,age): if not isinstance(name,str): raise TypeError('%s must be str' %name) if not isinstance(age,int): raise TypeError('%s must be int' %age) self.__Name=name self.__Age=age def tell_info(self): print('<名字:%s 年龄:%s>' %(self.__Name,self.__Age)) def set_info(self,x,y): if not isinstance(x,str): raise TypeError('%s must be str' %x) if not isinstance(y,int): raise TypeError('%s must be int' %y) self.__Name=x self.__Age=y p=People('egon',18) p.tell_info() p.set_info('Egon','19') p.set_info('Egon',19) p.tell_info() #2:封装函数属性:为了隔离复杂度 #取款是功能,而这个功能有很多功能组成:插卡、密码认证、输入金额、打印账单、取钱 #对使用者来说,只需要知道取款这个功能即可,其余功能我们都可以隐藏起来,很明显这么做 #隔离了复杂度,同时也提升了安全性 class ATM: def __card(self): print('插卡') def __auth(self): print('用户认证') def __input(self): print('输入取款金额') def __print_bill(self): print('打印账单') def __take_money(self): print('取款') def withdraw(self): self.__card() self.__auth() self.__input() self.__print_bill() self.__take_money() a=ATM() a.withdraw()
相关文章推荐
- python对日志处理的封装
- Python操作Oracle数据库的简单方法和封装类实例
- 使用uiautomator的python封装进行android的UI测试
- Python之面向对象编程:封装、继承、多态
- python3 封装接口
- python mysql 封装
- Python爬虫图形界面封装版本
- Python开发(二)封装批量插入
- python学习4-线性结构、切片、解构、封装
- Python3 与 C# 面向对象之~封装
- python封装安卓查找元素方法V1.0
- python日志模块封装
- python笔记----解构和封装
- python理解面向对象之封装
- python读取csv文件、excel文件并封装成dict类型的list,直接看代码
- 基于MSAA的自动化封装和设计—python版(转)
- Python基础--第6章 函数操作——功能化程序片段的封装
- Hadoop的Python语言封装
- Python调用采用Boost Python封装的c++(2)
- 阿里云OSS 上传文件 删除文件自封装 —python