property简单知识点

心已入冬 提交于 2020-01-31 00:55:12

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新式类中的三种方式

  1. 去price的值
  2. 设置rice的价格
  3. 删除价格的值

在这里插入图片描述在这里插入图片描述
上图中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属性使得其达到了数据过滤的作用

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!