Python私有权限是什么样的,封装的意义是什么
Admin 2022-08-22 群英技术资讯 1550 次浏览
这篇文章给大家分享的是Python私有权限是什么样的,封装的意义是什么。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。面向对象三大特性:封装、继承、多态
封装的意义
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中input()的用法及扩展,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
虽然把JSON数据存入mysql也是比较蛋疼,但是相比使用Nodejs嵌套处理多个mysql查询并拼接返回数据也算是没mongo时的一个折中方案了。我使用python拼接了一个json格式的字符串,却遇到了一些问题1,如果把json数据转成str存入,那么nodejs获取数据的时候就无法使用json格式了处理方法就是importjsondata=json.dumps(data_d
GFPGAN是腾讯开源的人脸修复算法,它利用预先训练好的面部 GAN(如 StyleGAN2)中封装的丰富和多样的先验因素进行盲脸 (blind face)修复。这篇文章主要为大家介绍通过GFPGAN实现模糊照片人脸恢复清晰,需要的朋友可以参考一下
本文主要介绍了Python数组变形的几种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
binarytree库是一个Python的第三方库,这个库实现了一些二叉树相关的常用方法,使用二叉树时,可以直接调用,不需要再自己实现,下面这篇文章主要给大家介绍了关于Python初识二叉树之实战binarytree的相关资料,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008