Python @property高级应用技巧
Created|Python
一、数据校验与约束这是@property最常见的用途。当你需要确保某个属性的值符合特定规则时(例如,年龄不能为负数),可以使用它: 传统方式:需要显式调用set_age()方法 使用@property:可以像给普通属性赋值一样obj.age = 25,但赋值操作会触发你预设的校验逻辑 1234567891011121314151617181920class Person: def __init__(self, name, age): self.name = name self._age = age # 使用单下划线表示这是一个内部属性 @property def age(self): """获取年龄""" return self._age @age.setter def age(self, value): """设置年龄,并进行校验""" ...
Python @property装饰器核心机制解析
Created|Python
引言"明明定义了@property,为什么在init里给它赋值却提示can't set attribute?"——这是无数Python初学者踩过的坑。今天,我们从这个报错出发,彻底搞懂@property的底层逻辑。 一、错误现场:一个"只读"的陷阱先看这段看似合理的代码: 1234567class Student: def __init__(self, name): self.name = name # 这里会报错! @property def name(self): return self._name 运行后抛出AttributeError: can't set...


Recent Posts
Categories
- C++85
- C-Code23
- CMake3
- CS501
- Computer-Networking40
- Computer-Organization1
- Data Structures and Algorithms1
- Data-Structures6
- Essay1
- Essays4
- Foundational Syntax and Core Concepts4
- Git3
- HTTP2
- Interview7
- Lcov2
- Leetcode133
- Linux40
- Linux Internals2
- List1
- Lists1
- MQTT8
- MYSQL3
- MySQL1
- Operating-Systems7
- PKGCONF1
- Python46
- Redis14
- STL3
- UML1
- XML1
- lock1
- practice problems1
- 代码提交1
- 函数模板2
- 工厂模式2
- 文章12
- 热门导读1
- 类图1
- 编译1
- 设计模式8
- 链表1
Archives
- 2026年04月 5
- 2026年03月 7
- 2026年02月 3
- 2026年01月 5
- 2025年12月 11
- 2025年11月 6
- 2025年10月 5
- 2025年09月 15
- 2025年08月 5
- 2025年07月 5
- 2025年06月 5
- 2025年05月 5
- 2025年04月 5
- 2025年03月 5
- 2025年02月 5
- 2025年01月 5
- 2024年12月 6
- 2024年11月 4
- 2024年10月 12
- 2024年09月 11
- 2024年08月 11
- 2024年07月 9
- 2024年06月 9
- 2024年05月 28
- 2024年04月 41
- 2024年03月 41
- 2024年02月 37
- 2024年01月 44
- 2023年12月 5
- 2023年11月 6
- 2023年10月 5
- 2023年09月 4
- 2023年08月 4
- 2023年07月 6
- 2023年06月 5
- 2023年05月 7
- 2023年04月 5
- 2023年03月 5
- 2023年02月 5
- 2023年01月 5
- 2022年12月 6
- 2022年11月 11
- 2022年10月 7
- 2022年09月 4
- 2022年08月 3
- 2022年07月 5
- 2022年06月 7
- 2022年05月 4
- 2022年04月 4
- 2022年03月 4
- 2022年02月 5
- 2022年01月 5
Website Info
Article Count :
477
Runtime :
Total Word Count :
779.8k
Last Update :