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 封装的应用场景

  • 数据库连接管理:在处理数据库交互的应用中,封装一个数据库连接类,可以隐藏连接细节、错误处理逻辑,只暴露执行查询、关闭连接等必要方法,大大简化了业务逻辑代码。
  • 用户认证模块:设计一个用户类,封装用户的登录信息、验证逻辑等敏感操作。这样,无论是在Web应用还是桌面软件中,都可以安全地处理用户登录,而不用担心密码等敏感信息被随意访问或泄露。
  • 高效的GUI组件:在图形界面编程中,每个按钮、文本框等组件都可以视为一个封装好的对象,它们内部处理事件响应、绘图逻辑,而开发者只需关注如何使用这些组件,极大提高了开发效率。
  • 作者:不死鸟.亚历山大.狼崽子

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python基础教程第11课:函数封装详解

    发表回复