Python私有权限是什么样的,封装的意义是什么
Admin 2022-08-22 群英技术资讯 870 次浏览
面向对象三大特性:封装、继承、多态
封装的意义
1,将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;
2,隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;
3,对类的属性和方法增加 访问权限控制。
私有权限:在属性名和方法名 前面 加上两个下划线 __
1,类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问;
2,类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问;
3,私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。
剧情发展: 大猫觉得配方传承下去没问题,但是钱是辛辛苦苦挣得血汗钱,不想传给徒弟。(私有权限)
# 定义一个Master父类 class Master(object): def __init__(self): # 属性 self.gufa = '古法煎饼果子配方' # 方法 def make_cake(self): print('按照%s制作古法煎饼果子' % self.gufa) def eat_master(self): print('在师傅家吃饭') # 定义一个School父类 class School(object): def __init__(self): self.gufa = '现代煎饼果子配方' def make_cake(self): print('按照%s制作现代煎饼果子' % self.gufa) def eat_school(self): print('在学校吃饭') # 定义一个Prentice子类,继承父类Master,School class Prentice(Master, School): # 子类重写了属性和方法 def __init__(self): self.gufa = '猫式煎饼果子配方' self.__money = 1000 # 亿美金 def make_cake(self): print('用%s配方制作煎饼果子' % self.gufa) # 获取Master的属性和方法 def make_master_cake(self): Master.__init__(self) Master.make_cake(self) # 获取School 的属性和方法 def make_school_cake(self): School.__init__(self) School.make_cake(self) # 新建一个大猫徒弟的类,继承大猫类Prentice class PrenticePrentice(Prentice): pass # 创建大猫徒弟的实例对象 pp = PrenticePrentice() pp.make_cake() # 用猫式煎饼果子配方配方制作煎饼果子 print(pp.gufa) # 猫式煎饼果子配方 pp.make_master_cake() # 按照古法煎饼果子配方制作古法煎饼果子 print(pp.gufa) # 古法煎饼果子配方 pp.make_school_cake() # 按照现代煎饼果子配方制作现代煎饼果子 print(pp.gufa) # 现代煎饼果子配方 #monye式私有属性,实例化继承不了 print(pp.__money) # 继承大猫的钱,出错:AttributeError: 'PrenticePrentice' object has no attribute '__money'
Python是以属性命名方式来区分,如果在属性和方法名前面加了2个下划线'__',则表明该属性和方法是私有权限,否则为公有权限。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python selenium模拟点击问题,涉及到安装谷歌浏览器和浏览器驱动的相关知识介绍,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
__init__()一般用来创建对象的实例变量,或一次性操作,super()用于调用父类的方法,可用来解决多重继承问题,下面这篇文章主要给大家介绍了关于Python中super().__init__()测试及理解的相关资料,需要的朋友可以参考下
程序可以通过创建一个新的异常类来命名它们自己的异常。异常应该是典型的继承自Exception类,直接或间接的方式。异常python有一个大基类,继承了Exception。因此,我们的定制类也必须继承Exception。
Python具有基本的文本文件读写功能。Python的标准库提供有更丰富的读写功能。文本文件的读写主要通过open()所构建的文件对象来实现。创建文
点对点连接可以处理很多通信需求,不过随着直接连接数的增加,在多对通信方之间传递相同的消息会变得越来越困难。单独地向各个接收方发送消息会耗费额外的处理时间和带宽,这对于诸如完成流视频或音频操作的应用来说,代码会出现显著的性能问题。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008