python面向对象编程封装的概念
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章主要讲解了"python面向对象编程封装的概念",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python面向对象编程封装的概念"吧!封装的定义
千家信息网最后更新 2025年02月07日python面向对象编程封装的概念
这篇文章主要讲解了"python面向对象编程封装的概念",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python面向对象编程封装的概念"吧!
封装的定义
封装是面向对象编程的一个重要概念。它是指将类中部分属性和方法加以隐藏与保护,使其只能在类内部使用而不能被外部直接访问。
封装最重要的优点有2条:一是提高了数据安全性、二是提高了代码健壮性。
封装的方法
在类内部定义的变量前加双下划线即表示该变量是私有的,外部不能直接访问。
class User:__private = 'secret'def __print():print(f'不能告诉你{User.__private}')
封装的原理
加了双下划线的变量为啥不能从类的外部调用?请认真观察private和print两个变量:
class User:__private = 'secret'def __print():print(f'不能告诉你{User.__private}')print(User.__dict__)out:{ '__module__': '__main__', '_User__private': 'secret', '_User__print':, '__dict__': , '__weakref__': , '__doc__': None}
在类内部定义双下划线开头的变量会被python自动转换成 单下划线类名 双下划线 变量名。在类外部不能定义私有变量,即类外部定义双下划线开头的变量不会被自动转换。所以在类外部直接访问私有变量会报错。在类内部可以直接访问私有变量。
另外知道python封装原理后,在类外部实际上还是可以直接访问私有变量,案例如下:
class User:__private = 'secret'def __print():print(f'不能告诉你{User.__private}')print(User._User__private)User._User__print()out:secret不能告诉你secret
但是强烈建议不要在类外部直接访问类内部的私有属性,这样做破坏了封装的规则,不利于数据安全性和代码健壮性。
封装的案例
运用封装的有很多,下面举一个小案例:
class User:def __init__(self, name, password):self.name = name self.__password = passworddef chgpwd(self):pwd = input('请输入旧密码:')if pwd == self.__password:pwd1 = input('请输入新密码:')pwd2 = input('请再输入一次:')if pwd1 == pwd2 and len(pwd1) >= 6:self.__password = pwd1return Falsereturn Truen1 = User('张三', '123456')while n1.chgpwd():print('密码修改失败,请重试!')
在上述代码中,__password是私有属性,不能直接修改!若要修改必须通过chgwd()方法,在该方法中有验证旧密码和重复新密码的功能,确保修改密码合规。在多人配合的项目中封装是不可或缺的手段。经常用来验证输入的数据值是否合理等等。
感谢各位的阅读,以上就是"python面向对象编程封装的概念"的内容了,经过本文的学习后,相信大家对python面向对象编程封装的概念这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
封装
变量
私有
下划线
对象
概念
编程
密码
方法
输入
代码
数据
案例
学习
验证
健壮
重要
安全
内容
原理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
川大的网络安全专业排名
招聘网连接数据库语句
网络安全定义简答
移动医疗系统数据库
软件开发过程实例
小学生网络安全活动图片
中国网络安全年会车联网
网络安全知识的动画
网络安全职业好吗
软件开发公司收费
数据库中的错误数据是指
软件开发最佳年龄
奉贤区应用软件开发服务
生物基因学数据库
服务器防火墙设置
数据库性能开发方案
数据库磁盘读写性能相对较差
seer数据库筛选
数据库表名不能超过多少个字符
成都武侯区软件开发有限公司
数据库的实体
java如何搭建服务器
非肿瘤单细胞数据库
江开数据库系统原理形考作业
安装kms服务器安全吗
软件开发最佳年龄
运营商与软件开发
不限流量的服务器
一个多租户数据库怎么设计
西门子PLC和国家网络安全