Python面向对象|属性封装详解(公有属性、私有属性、get/set方法、@property装饰器)零基础吃透

发布时间:2026/8/11 4:38:10

Python面向对象|属性封装详解(公有属性、私有属性、get/set方法、@property装饰器)零基础吃透
一、什么是封装封装是面向对象三大特性封装、继承、多态第一位也是最重要、项目最常用的特性。封装核心思想隐藏对象内部的私有数据只对外提供安全的访问接口。通俗理解把数据藏起来不让外部随意修改把操作统一收口通过方法可控访问防止外部传入非法数据、乱改数据为什么需要封装如果属性全部公开外部可以随意赋值会出现大量非法数据年龄 -100分数 9999账号密码随意篡改封装的意义数据安全、可控、可校验。二、公有属性 vs 私有属性1. 公有属性默认正常定义的属性外部可以任意读取、任意修改。class Student: def __init__(self, name, age): self.name name self.age age stu Student(张三, 18) # 外部直接读写完全不受限制 stu.age -50 print(stu.age)缺点极其明显数据完全不受控业务极其不安全。2. 私有属性封装核心Python中属性前加两个下划线 __ 即为私有属性特点只能类内部访问外部无法直接读写有效保护数据class Student: def __init__(self, name, age): self.name name self.__age age # 私有属性 stu Student(张三, 18) # 报错外部无法直接访问 # print(stu.__age)三、封装标准写法get/set 方法私有属性不能外部直接访问所以提供两套接口get方法获取私有属性值set方法修改私有属性值可做数据校验完整封装案例标准作业版class Student: def __init__(self, name, age): self.name name self.__age age # 私有属性 # get 获取数据 def get_age(self): return self.__age # set 修改数据核心数据校验 def set_age(self, new_age): if 0 new_age 150: self.__age new_age else: print(年龄输入不合法) # 测试 stu Student(张三, 18) # 读取 print(stu.get_age()) # 修改合法数据 stu.set_age(20) print(stu.get_age()) # 修改非法数据被拦截 stu.set_age(-10)封装最大优势所有数据修改必须经过 set 方法统一校验、统一过滤杜绝脏数据四、Python伪私有机制面试考点Python 的私有属性是语法伪装不是绝对私有本质Python 把__age改名成了_类名__ageprint(stu._Student__age)总结Python 私有是规范约束不是语法强制锁死程序员要自觉遵守封装规则不强行访问私有属性五、高级封装property 装饰器极简写法每次手写 get/set 太麻烦Python 提供property优雅封装作用property将方法变成「属性形式读取」属性名.setter将方法变成「属性形式修改」优雅封装完整版class Student: def __init__(self, name, age): self.name name self.__age age # 读取 property def age(self): return self.__age # 修改 age.setter def age(self, new_age): if 0 new_age 150: self.__age new_age else: print(年龄不合法) # 调用像普通属性一样简单 stu Student(李四, 18) print(stu.age) stu.age 30 print(stu.age) stu.age -20优势调用简洁、保留校验逻辑、完全符合封装思想。六、只读属性设置高阶用法只写 property不写 setter实现只读、不可修改class Student: def __init__(self, id_num): self.__id id_num property def id(self): return self.__id stu Student(2026001) print(stu.id) # stu.id 123 # 报错无法修改七、全文核心总结封装核心隐藏私有数据开放可控接口保证数据安全私有属性双下划线 __xxx类外不可直接访问基础封装get() 获取、set() 校验修改高级封装property 装饰器优雅读写Python私有是伪私有靠编码规范约束。八、OOP四大特性完整收官至此你的 CSDN Python OOP 全集已集齐类与对象 → 继承 → 组合 → 类成员 →属性封装全套零基础到进阶可直接当成期末大作业系列专栏✨ 点赞收藏OOP彻底学通

相关新闻

安卓APP渗透测试实战:从环境搭建到漏洞挖掘的完整指南

安卓APP渗透测试实战:从环境搭建到漏洞挖掘的完整指南

2026/8/11 4:38:10

1. 从“黑盒”到“白盒”:我的安卓APP渗透测试实战心法干了这么多年移动安全,安卓APP的渗透测试一直是个既基础又充满挑战的活儿。说它基础,是因为流程和工具相对固定;说它挑战,是因为随着Android系统的迭代、开发框架…

RuoYi-App企业级移动开发平台实战指南

RuoYi-App企业级移动开发平台实战指南

2026/8/11 4:38:10

1. RuoYi-App项目概述RuoYi-App是一款基于Spring Boot框架的企业级快速开发平台移动端实现。作为RuoYi系列产品的移动端解决方案,它完美继承了后台管理系统的核心功能模块,并针对移动设备特性进行了深度优化。我在实际项目中使用这个框架已有两年多时间&…

LeetCode 1442:异或相等三元组的高效解法

LeetCode 1442:异或相等三元组的高效解法

2026/8/11 4:38:10

1. 题目解析与核心概念这道题目来自LeetCode第1442题&#xff0c;题目描述如下&#xff1a;给定一个整数数组arr&#xff0c;我们需要统计能够形成两个异或相等数组的三元组(i, j, k)的数目&#xff0c;其中0 ≤ i < j ≤ k < arr.length。首先我们需要明确几个关键概念&…

Unity Shader自动化对比工具:从原理到实践,打造视觉回归测试

Unity Shader自动化对比工具:从原理到实践,打造视觉回归测试

2026/8/11 5:38:13

1. 项目概述&#xff1a;为什么我们需要一个Shader效果自动化对比工具&#xff1f;在Unity开发中&#xff0c;Shader是创造视觉魔法的核心。无论是实现一个逼真的水面反射&#xff0c;还是一个风格化的卡通渲染&#xff0c;Shader的编写和调试都占据了美术和TA&#xff08;技术…

AI 可观测性开发短记:证据链怎样保留

AI 可观测性开发短记:证据链怎样保留

2026/8/11 5:38:13

AI 可观测性开发短记&#xff1a;证据链怎样保留 处理AI 基础设施时&#xff0c;我会先拿到请求入口、依赖调用和运行信号采集的现状材料&#xff1a;接口定义、部署清单或运行记录。没有这些材料&#xff0c;讨论“典型线上故障的定位证据链”很容易变成套话。 AI 应用基础设施…

让大模型跑在小芯片上的工程挑战记录:部署前别漏掉这些配置

让大模型跑在小芯片上的工程挑战记录:部署前别漏掉这些配置

2026/8/11 5:38:13

让大模型跑在小芯片上的工程挑战记录&#xff1a;部署前别漏掉这些配置 在 8GB 甚至 4GB 内存的端侧板卡上部署 3B / 0.5B 级别的端侧小语言模型&#xff08;SLM&#xff09;&#xff0c;极度考验底层工程治理。许多项目在开发阶段运行良好&#xff0c;一放到生产环境&#xff…

OpenStack存储卷卸载(Detach)操作全解析与运维实践

OpenStack存储卷卸载(Detach)操作全解析与运维实践

2026/8/11 5:38:13

1. 运维视角下的Detach Volume操作本质在OpenStack的日常运维中&#xff0c;存储卷(Volume)的挂载(Attach)与卸载(Detach)是最基础也最频繁的操作之一。表面看这只是简单的存储资源分配与回收&#xff0c;但实际运维中这个操作涉及存储后端、计算节点、虚拟化层和网络配置的多方…

《新建文件夹》游戏启示:从数字混沌到有序创作的实用框架

《新建文件夹》游戏启示:从数字混沌到有序创作的实用框架

2026/8/11 5:38:13

你有没有遇到过那种情况——一个项目文件夹&#xff0c;名字就叫“新建文件夹”&#xff0c;里面塞满了各种半成品、废弃的草稿、临时测试文件&#xff0c;还有一堆你自己都忘了是干嘛用的东西。它像一个数字黑洞&#xff0c;吞噬着你的时间和精力&#xff0c;每次打开都需要鼓…

LangChain.js工具链实战:赋予大语言模型外部调用能力

LangChain.js工具链实战:赋予大语言模型外部调用能力

2026/8/11 5:28:13

1. 项目概述&#xff1a;LangChain.js 工具链的实战价值 如果你正在用LangChain.js构建AI应用&#xff0c;大概率会遇到一个核心痛点&#xff1a;大语言模型&#xff08;LLM&#xff09;本身就像一个知识渊博但“手无寸铁”的顾问。它能和你聊得天花乱坠&#xff0c;但当你需要…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/10 5:58:32

比较好的亚太EMBA核心差异先看什么&#xff1f;对于希望兼顾工作与系统管理能力提升的亚太区高管而言&#xff0c;筛选匹配度高的EMBA项目时&#xff0c;师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/10 7:54:12

备考海外游学的亚洲EMBA面试&#xff0c;核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备&#xff0c;避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料&#xff0c;却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/10 7:19:21

比较好的国内EMBA核心差异体现在哪些方面&#xff1f;比较好的国内EMBA的核心长期价值&#xff0c;很大程度上依托于校友网络的连接质量与资源生态的活跃度&#xff0c;这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息&#xff0c;从课程、师…

Unity新手入门:从零搭建开发环境与核心概念解析

Unity新手入门:从零搭建开发环境与核心概念解析

2026/8/11 0:07:41

1. 项目概述&#xff1a;为什么Unity是游戏开发者的首选起点如果你对游戏开发感兴趣&#xff0c;或者想进入这个充满创造力的行业&#xff0c;那么“Unity”这个名字你肯定不陌生。它几乎是所有新手开发者、独立游戏团队&#xff0c;甚至是一些3A大厂在特定项目上的首选引擎。为…

Agency-Agents 智能体系统从零搭建实战指南

Agency-Agents 智能体系统从零搭建实战指南

2026/8/11 0:07:41

在开发复杂应用时&#xff0c;我们常常遇到单一模型难以兼顾全局规划与细节执行的困境。有时候&#xff0c;模型擅长创意生成却在逻辑推理上稍显吃力&#xff0c;或者精于代码编写却缺乏对业务上下文的深刻理解。为了解决这个问题&#xff0c;多智能体协作架构应运而生&#xf…

MiniMax 权益码 Token Plan 套餐 9 折优惠,Token Plan 共建邀请计划 至2026.8.31

MiniMax 权益码 Token Plan 套餐 9 折优惠,Token Plan 共建邀请计划 至2026.8.31

2026/8/11 0:07:41

&#x1f680; MiniMax Token Plan MiniMax 推出全新 Token 计划&#xff0c;新增语音、音乐、视频和图片生成权益。 用户邀请好友可享双重福利 订阅一份套餐&#xff0c;解锁最新模型 —— 前沿 Coding 能力、1M 超长上下文、原生多模态&#xff0c;图文音视频共用套餐额度。 …

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版等核心场景&#xff0c;真正帮你高效搞定论文难题。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/9 13:42:46

2026年真正好用的AI论文工具&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃&#xff1a;XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…