当前位置: 首页 > news >正文

12.6 类的封装

目录
  • 12.6 类的封装
    • 1. 封装的两个层面
    • 2. 封装的好处
    • 3.获取封装的属性或方法(了解)

12.6 类的封装

  • 封装是什么?打包,封起来,装起来。封装是针对类的,
  • 封装分为两个层面:
    • 第一个层面:对象能拿到类的东西,但是类不能拿到对象的东西。
    • 第二个层面:内部可以使用,外部不可以使用、在需要封装的属性前面加上__。

1. 封装的两个层面

第一个层面:对象能拿到类的东西,但是类不能拿到对象的东西。


class Foo():count=0f=Foo()
print(f.count) #对象能拿到类属性
#输出:0f.name='coco'
# print(Foo.name) #类拿不到对象的属性

第二个层面:内部可以使用,外部不可以使用、在需要封装的属性前面加上__

class Foo():__count=0print('in',__count) #能找到__count#输出:in 0print('out',Foo.__count) #找不到__count

2. 封装的好处

  • 属性封装的好处:保护隐私,类内部的属性不想让其他人访问。
  • 方法封装的好处:可以精简代码,使用方法就行,不需要方法的具体步骤;并且外部调用者也不知道内部发生了什么。
# 属性封装
class Foo():__count=0def __f1(self):passprint('out',Foo.__f1)  #找不到
# 方法封装
class People():def __nawan(self):print('nawan')def __chifan(self):print('chifan1')def chifan_all(self):self.__nawan()self.__chifan()peo=People()
print('out',peo.chifan_all())
#输出
nawan
chifan1
out None#内部是类体代码,外部是类外面

3.获取封装的属性或方法(了解)

class People:def __init__(self,name):self.__name=name #封装后只有内部能拿到def get_name(self):return f'名字为{self.__name}'
p=People('coco')
print(p.get_name())#输出:名字为coco
#应用
class People:def __init__(self,pwd):self.__pwd=pwd @property #方法可以不用加括号使用def pwd(self):return f'无法获取你的密码'p=People('123')
print(p.pwd )
#输出:无法获取你的密码
class F1:__count=0f=F1()
print(f._F1__count) #'_类名__属性'可以拿到封装的属性,可以拿到,但是不建议这样做#输出:0
class Foo():__count=0foo=Foo() 
print(foo._Foo__count)
#输出:0foo.__y=1 #外部
print(foo.__y)#外部可以访问#输出:1
http://www.agseo.cn/news/350/

相关文章:

  • 深度解码你自己看着办:职场新人必须掌握的潜台词破解术
  • 6 个替代 Jira 的开源项目管理工具推荐
  • 记录一个Windows上的键盘鼠标模拟库和沟子库--Input
  • 惊世骇俗:《易经》六十四卦与数学公理完整映射表
  • 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“:连接超时问题
  • 27届春招备战一轮复习--第三期(推荐)
  • 数据集和数据系统_AI成为工作中很好用的协同成员了
  • IDM超详细图文安装激活教程,一次安装免费使用 Internet Download Manager
  • 标题
  • 12.5 多态与多态性
  • 集训日记
  • 数字孪生技术如何破解产线效率瓶颈? - 智慧园区
  • 三期集训 日记?
  • 需求爆炸?领歌3步科学精简法,让团队重获掌控力!
  • 从想法到代码:AI编程时代,我们如何高质量“喂养”AI?
  • 12.4 菱形继承问题(了解)
  • 25年CSP前ds做题记录
  • 极域电子学生机无法连接教师机
  • Python Flask框架入门_2.API增加授权验证
  • 12.2 类的派生
  • CSP-S模拟18
  • 在服务器后台运行python服务
  • HCIP回顾—2 OSPF工作过程及状态机制
  • python基础——函数小进阶
  • 你的开发服务器在说谎-热重载与热重启的关键区别
  • 在疼痛中,在喧嚣 失聪与惶惑中
  • AT_agc018_b [AGC018B] Sports Festival
  • 11.5 类与数据类型
  • 开发手记(二)——图片转换成base64编码
  • C++《C++11》(上) - 详解