@property 将方法转为属性调用,实现读写控制与数据校验,如定义 name 属性并通过 @name.setter 验证赋值类型,确保类型安全并保持接口一致,提升代码可维护性。

@property 是 Python 中的一个装饰器,用来将类中的某个方法转换为属性调用方式,使得外部在使用该方法时,不需要加括号就能访问,就像访问普通变量一样。它让方法的调用更自然,同时还能保留方法的逻辑处理能力。
当你定义一个方法并加上 @property 装饰器后,这个方法可以在实例中像属性一样被访问。
class Person: def __init__(self, name): self._name = name @property
def name(self):
return self._namep = Person("Alice") print(p.name) # 输出: Alice,不需要写 p.name()
除了只读访问,你还可以通过 @属性名.setter 定义赋值逻辑,实现对属性的验证或处理。
class Person: def __init__(self, name): self._name = name @property
def name(self):
return self._name
@name.setter
def name(self, value):
if not isinstance(value, str):
raise TypeError("名字必须是字符串")
self._name = valuep = Person("Bob") p.name = "Charlie" # 调用 setter print(p.name) # 输出: Charlie
立即学习“Python免费学习笔记(深入)”;
@property 主要用于:
比如原本直接返回 self.name,后来改为动态生成姓名,使用 @property 后,外部代码无需修改调用方式。
基本上就这些。@property 让代码更安全、更整洁,是 Python 面向对象编程中很实用的功能。
以上就是python中@property是什么的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号