正常情况下我们使用类中的方法,都需要在方法名后面加上括号表示调用方法。
而property可以使我们直接不加括号就能调用方法。例如:原本调用方法需要d.test() 通过property只需要d.test 即可调用方法,不需要括号。
@propeerty装饰器
在需要访问的方法上面直接添加property装饰器。
注意:
使用装饰器后,被装饰的方法不能再加括号,会报错。
同时,被装饰的方法不能进行修改即不能传参,只能为只读模式,即只能访问。
这需要其他两个装饰器:
重新赋值:@xx. setter【xx为与poperty同名的方法名】
删除:此处的删除指触发装饰器@xx.deleter装饰的方法,并不是真多删除方法或者删除内容。
要想删除属性,要在方法中设置删除代码。
property方法
property(fget=方法名, fset=方法名 , fdel=方法名)
参数解释:
fget= : 代表获取【只读模式】
fset=f:代表设置【修改】
fdel=:代表删除【访问删除方法即同property装饰器的deleter装饰器一致效果】
要求:定义私有对象:年龄
要求:实现私有对象的查 改 删
上图的设置后,需要使用方法还是需要通过不同的方法名进行调用。
比如: t.get_age()
此时想要不添加小括号就能调用
即:t.get_age
需要使用property方法。
调用触发方法同@property装饰器一致
即:
对象.方法名【property方法赋值的名字】:触发fget绑定的方法
对象.方法名【property方法赋值的名字】= 再赋值:为触发fset 绑定的方法
del 对象.方法名【property方法赋值的名字】:触发fdel绑定的方法