Python 今天抽空学习了@Property

1.@Property有啥用

 1) @property使方法像属性一样调用

@property可以把一个实例方法变成其同名属性,以支持.号访问,它亦可标记设置限制,加以规范

2) @property成为属性函数,可以对属性赋值时做必要的检查,比如在setter方法里加过滤判断条件。

3) 代码显得相对简洁一些, 相比自定义的get和set方法,property保证了代码的短小精悍,对私有属性的操作代码格式化模块化。

 

2. @Property原型

property(fget=None, fset=None, fdel=None, doc=None)

 

3. 用例子来理解:为什么要用@Property

 改成下面这样

Python支持高阶函数,可以用装饰器函数把 get/set 方法“装饰”成属性调用:

第一个sala(self)是get方法,用@property装饰,第二个sala(self, sala)是set方法,用@sala.setter装饰,@sala.setter是前一个@property装饰后的副产品。

现在,就可以像使用属性一样设置sala了

 

 

 

 

 

 

 

 

4. 用例子来理解:@Property对是私有属性进行操作

 看下面

 

 

参考:

https://www.cnblogs.com/Lambda721/p/6132206.html

https://blog.csdn.net/qq_26442553/article/details/82222572

http://www.cnblogs.com/crwy/p/6852347.html

https://www.jb51.net/article/134148.htm

posted @ 2019-05-05 14:22  筱筱的春天  阅读(263)  评论(0编辑  收藏  举报