Python类与属性封装:私有变量与getter/setter实现

版权申诉
5星 · 超过95%的资源 16 下载量 139 浏览量 更新于2024-09-11 2 收藏 6KB TXT 举报
在2020年9月25日的Python学习资料中,实验8主要关注了类程序设计中的封装和访问控制。核心内容包括如何隐藏类的私有属性以及实现getter和setter方法来保护数据安全。 首先,实验涉及了一个名为`Student`的类,其目的是创建一个具有姓名(name)和性别(gender)属性的学生对象。为了保护`gender`属性不被外部直接访问,使用双下划线`__gender`将其标记为私有变量。通过定义`get_gender()`方法,可以公开获取性别,但通过`set_gender()`方法设置性别时,需要检查传入参数的有效性,确保只能设置为'male'或'female'。在实例化`bart1`和`bart2`时,通过`ceshi()`函数验证了性别属性的正确修改。 接着,实验引入了另一个名为`People`的类,作为对封装概念的进一步练习。这个类定义了私有属性如`__name`、`__age`和`__sex`,以及公共方法`get_name()`和`get_age()`来获取这些属性值。值得注意的是,虽然可以通过点表示法访问类的私有属性(如`p1._People__name`),但在实践中这是不推荐的,因为这违背了封装原则。通过`__dict__`属性可以查看类的所有属性,包括私有属性。 此外,实验还展示了如何访问类的其他元数据,如类的文档字符串(__doc__)、类名(__name__)、所在模块(__module__)以及类的所有父类构成元素(__base__)。这些都是理解类设计和使用的重要部分,尤其是对于面向对象编程中类的继承和模块管理的理解。 这个实验让学习者深入理解了Python中类的封装机制,如何创建和管理私有属性,以及正确地使用getter和setter方法来提供数据访问的控制。同时,也强调了在编程中遵循良好实践的重要性,如避免直接访问私有属性,以便维护代码的整洁和可维护性。
2023-02-20 上传