@property修饰器可以将一个方法转换为属性,使其可以像访问属性一样使用。通过@property修饰的方法被称为getter,用于获取属性的值。同时可以使用@property.setter修饰器定义一个setter方法,用于设置属性的值。这样可以在对属性进行赋值时进行一些限制或处理。
#property将某个函数暴露出来
class Person_property(object):
@property #将age属性暴露出去
def age(self):
return self._age
@age.setter #当前age属性可以允许赋值
def age(self,value):
if value>=0 and value<=88:
self._age =value
else:
self._age=0
raise ValueError("age得值必须在0到88之间")
@property
def name(self):
self._name ="张锋"
return self._name
if __name__ == '__main__':
p = Person_property()
p.age = 19
print(p.age) #age属性可以读也可以写
# p.name = 'wang'
print(p.name) #name属性只能进行读取
说明:property的用法就是将某个特定的函数暴露出来,例如这里的age的上面使用了property修饰器就表示将age这个函数暴露出去,后面的@age.setter表示对暴露出来的age属性可以进行修改,当没有这个设置的时候,比如这里的name只设置了property,就表示只能对该属性进行读取操作,不能进行修改。