Python基础教程第11课:函数封装详解
1 什么是封装
通俗理解:封装,简而言之,就是把数据(变量)和操作这些数据的方法(函数)打包在一起,形成一个“黑箱”,外界只能通过预设的接口(方法)来访问或修改这个“黑箱”里的内容,而无需知道其内部是如何工作的。
专业术语:封装是面向对象编程(OOP)的四大基本原则之一,它通过隐藏对象的属性和实现细节,仅对外公开接口来控制外部对对象的访问。
2 封装原理
原理探索:
封装表示的是,将现实世界事物的:
封装到类中,描述为:
在Python中,我们主要通过创建类(class)来实现封装。类是一种自定义的数据类型,它可以包含属性(变量)和方法(函数)。属性用于存储数据,方法则是对这些数据进行操作的函数。通过设置访问权限(public, private),我们可以控制哪些内容可以被外部访问,哪些内容应该保持私有。
public(公有): 不加任何前缀的属性或方法,默认可以被任何代码访问。
private(私有): 以两个下划线__开头的属性或方法,表示这是类的内部实现细节,不应直接从外部访问。
3 封装的好处
4 代码示例
Python中的封装主要依赖于名称修饰(Name Mangling)机制来实现私有属性的保护。当你为一个属性或方法加上双下划线__前缀时,Python会自动修改其名称,使其对外部代码不可见。
例如,如果你定义了一个名为__secret_value的私有属性,Python实际上会将其名称修改为_类名__secret_value。这种机制有效地阻止了外部代码直接访问该属性,除非通过类提供的公共方法。
class MyClass:
def __init__(self):
self.public_var = "任何人都能看见"
self.__private_var = "只有我能看到" # 私有变量
def get_private_var(self): # 公共方法,用于访问私有变量
return self.__private_var
# 实例化类
my_obj = MyClass()
print(my_obj.public_var) # 输出:任何人都能看见
print(my_obj.get_private_var()) # 正确访问私有变量的方式,输出:只有我能看到
my_obj.__private_var = "我好帅" #不报错,但是无效
print(my_obj.__private_var) # 这将引发错误,因为直接访问私有变量被阻止
5 封装的应用场景
作者:不死鸟.亚历山大.狼崽子