property属性
除去类属性和实例属性外另外一种属性
普通的方法前边加了一个property之后,接下来就由一个特殊功能的体现
在调用 proop的方法的时候就变了,仔细观察上图中最后一行,发现调用prop方法没有写(),这样的形式一般返回一个值。
这就是property,而且返回的值是代码,foo_obj.pop的返回值
这就是property属性
property给人的感觉是明明调用函数但是却看上去访问了一个属性。所以可读性上来讲size的可读性更高。方便
property有个特点,就是例如上图中装饰只有一个size,不能再多。
以下的两个例子说明
以上图片说明了property属性调用size的时候其实调用的返回值int类型的100
这次多加了一个参数,明显也出错
所以调用property属性的时候不能多写参数。
创建propery属性的方式
创建property属性的方式----装饰器
创建property属性的方式—-类属性
一、创建property属性的方式----装饰器
@property
底下的函数得有返回值
经典类和新式类不一样,如果是经典类python2只用property一种方式
如果是新式类的话就可以用property三种方式以下三种方式
在python3新式类中的三种方式
- 去price的值
- 设置rice的价格
- 删除价格的值
上图中obj.price = 200 传给value
以上是新式类中创建property属性的三种方法
二、创建property属性的方式—-类属性
BAR = property(get_bar)
obj = Fool()# 创建类对象
result = obj.BAR
print(result)
property接收四个参数
以上图中获取,设置,获取文档说明,删除
介绍Django框架和Flask框架,相比来说Flask框架是轻量级框架
Django框架运用了property。Django框架是个特别繁杂的框架
目的:简化流程
property应用场景demo
定义了一个类,类中有一个私有属性,不想让对象直接获取私有属性的值,因此设置一个方法获取值。get方法和set方法一般在其他语言中配合。可以权限验证,ifinstance如果是int类型则值为True,如果在isinstace的值传过来的是数字,则把数字传给money。起到了防护和验证作用。但是python不这么做
看以下代码,使用property属性使得其私有属性验证和防护更加容易使用property属性使得其达到了数据过滤的作用
来源:CSDN
作者:小美元
链接:https://blog.csdn.net/weixin_41621686/article/details/104115773