超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

属性、方法与封装

面向对象与高级 Python#Python全栈#第三阶段#面向对象与高级 Python#属性、方法与封装约 573 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

类属性与实例属性有什么区别?

追问 默认配置、实例计数和每个用户的购物车分别应该放在哪里?

类属性是列表时,为什么多个实例可能共享它?

追问 如何修复“一个学生选课后,其他学生也出现同一课程”的问题?

给实例的同名属性赋值,是否一定修改类属性?

追问 用 Class.level = 1 与 obj.level = 2 验证遮蔽关系;删除实例属性后会怎样?

实例方法、类方法和静态方法如何选择?

追问 需要访问实例状态、需要获得调用类和纯辅助计算分别适合哪一种?

如何用 classmethod 实现从字典创建对象的备用构造方式?

追问 返回 cls(...) 与写死具体类名,对子类复用有什么差异?

单下划线与双前导下划线属性有什么区别?

追问 命名约定与名称改写是否等于真正的安全访问控制?

property 可以解决什么接口问题?

追问 如何保持属性访问方式,同时加入校验或计算逻辑?

如何用 property 校验价格并提供只读的订单总额?

追问 存储属性应该叫什么?setter 内再次给同一 property 赋值可能导致什么?

getattr()、setattr() 与 hasattr() 分别做什么?

追问 动态读取属性可能执行 property 吗?为什么不应允许用户任意指定可修改的内部属性?

描述符与 property 有什么联系?

追问 __get__、__set__ 管理什么行为?为什么普通方法绑定也可以从描述符协议理解?