Python - 面向对象编程 - 三大特性之封装

简介: Python - 面向对象编程 - 三大特性之封装

简单介绍封装


  • 封装是面向对象编程的一大特点
  • 封装可以被认为是一个保护屏障,防止该类的属性、方法和数据结构被外部随意访问
  • 要访问该类的属性、私有方法、数据结构,必须由指定的方法控制访问

 

深入理解封装

  • 在设计类时,刻意地将一些属性和方法隐藏在类的内部【私有属性、私有方法】
  • 这样在使用此类时,将无法直接通过 实例对象.属性名   实例对象.实例方法() 形式调用这些属性、方法
  • 而只能通过公开的方法间接操作这些隐藏的属性和方法

 

类比场景

  • 好比使用电脑,我们只需要学会如何使用键盘和鼠标就可以了,不用关心内部是怎么实现的,因为那是生产和设计人员该操心的
  • 注意:封装绝不是将类中所有的方法都隐藏起来,一定要留一些像键盘、鼠标这样可供外界使用的类方法
  • 修改电脑内部的设计,但我们仍然通过键盘、鼠标去操作电脑

 

封装的好处


数据结构完整性

  • 封装机制保证了类内部数据结构的完整性
  • 用户只能通过公开的方法来访问数据,只需要在公开的方法中加入适当的控制逻辑,即可控制用户对类中属性或方法的不合理操作
  • 很好地避免了外部对内部数据的影响,提高了程序的可维护性,也提升了代码数据的安全性

 

减少耦合,提高代码复用性

  • 良好的封装能够减少耦合
  • 用户使用类不需要去关心类中的具体实现代码,通过类公开的方法即可正确访问这个类
  • 类内部的属性、方法、数据结构可以随意修改,而不用修改那些调用类方法的程序片段

 

封装原则


相关文章
|
8天前
|
Python
你真的会面向对象吗!解密Python“魔术方法”
你真的会面向对象吗!解密Python“魔术方法”
16 0
|
4天前
|
存储 Java C#
详解 Python 中的面向对象编程(2)
详解 Python 中的面向对象编程(2)
20 10
|
10天前
|
存储 数据库 C++
"深入剖析Python元组(tuple):与列表的对比、特性解析及高效应用场景展示"
【8月更文挑战第9天】Python元组与列表虽均用于存储元素集合,但有本质差异。元组不可变,创建后无法修改,适合保护数据不被意外更改的场景,如作字典键或传递固定值。列表则可变,支持动态增删改,适用于需频繁调整的数据集。元组因不可变性而在性能上有优势,可用于快速查找。两者各有千秋,根据具体需求选择使用。例如,元组可用于表示坐标点或日期,而列表更适合管理用户列表或库存。
16 1
|
12天前
|
Docker Python 容器
[docker]封装python的docker镜像
[docker]封装python的docker镜像
|
15天前
|
存储 程序员 索引
详解 Python 中的面向对象编程(1)
详解 Python 中的面向对象编程(1)
23 2
|
18天前
|
安全 算法 Go
Python面向对象的三大特性
python面向对象编程(OOP)的三大特性是封装、继承和多态。这些特性共同构成了OOP的基础,使得软件设计更加灵活、可维护和可扩展。
14 3
|
25天前
|
设计模式 算法 关系型数据库
Python面向对象编程基础解析
【7月更文挑战第21天】在Python中,面向对象编程(OOP)是一种强大的编程范式,它允许开发者通过定义类和对象来组织和管理代码。本文将介绍Python中面向对象编程的基础概念,并通过代码实例进行解析。
36 10
|
23天前
|
数据采集 Java C语言
Python面向对象的高级动态可解释型脚本语言简介
Python是一种面向对象的高级动态可解释型脚本语言。
17 3
|
1月前
|
机器学习/深度学习 数据采集 前端开发
网络爬虫开发:JavaScript与Python特性的小差异
我们以前写JavaScript的代码时,在遇到了发送请求时,都是需要去await的。 但是为什么Python代码不需要这样做呢? 这就是因为JavaScript是异步的,Python是同步的。 JavaScript就需要使用关键词await将异步代码块变为同步代码。
|
1月前
|
Python
在Python中实现面向对象编程
【7月更文挑战第14天】在Python中实现面向对象编程
20 2