python3.6中@property装饰器的使用

原创 2018年04月16日 23:31:38

1、@property装饰器的使用场景简单记录如下:

  • 负责把一个方法变成属性调用;
  • 可以把一个getter方法变成属性,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值;
  • 只定义getter方法,不定义setter方法就是一个只读属性

2、通过一个例子来加深对@property装饰器的理解:利用@property给一个Screen对象加上width和height属性,以及一个只读属性resolution。

代码实现如下:

class Screen(object):
	
	@property
	def width(self):
		return self._width
	
	@width.setter
	def width(self,value):
		self._width = value
		
	@property
	def height(self):
		return self._height
	
	@height.setter
	def height(self,values):
		self._height = values
	
	@property
	def resolution(self):
		return self._width * self._height
		
s = Screen()
s.width = 1024
s.height = 768
print('resolution = ',s.resolution)

Python3学习(24)--内置装饰器@property

@property 前面我们学过装饰器,我们知道,装饰器的作用就是用来扩展函数的,当然前面我们介绍的装饰器,都是我们自己定义的,格式如下: @decoretor def func(*args,**...
  • Appleyk
  • Appleyk
  • 2017-09-05 12:40:51
  • 3722

Python @property装饰器

廖老师的博客链接如下,一开始没看懂,搜罗了一大堆,有点感觉了 点击打开链接 其实@property装饰器就是把class的方法变成属性,见下面这个class,它有两个私有属性。 通过第一个@...
  • sophie2805
  • sophie2805
  • 2015-06-14 18:49:02
  • 630

Python:使用property装饰器将方法转为属性

最近看了一下python,学习了点基础。本文就是在学习python过程中的产物之一。一来作为笔记方便日后参阅,二来写出来分享给python初学者。由于笔者的工作语言是java,因此可能回经常将pyth...
  • javy_codercoder
  • javy_codercoder
  • 2016-03-31 16:24:55
  • 1106

@property 装饰器

#!/usr/bin/env python # coding=utf-8 class Student(object): def get_score(self): return...
  • qiqiaiairen
  • qiqiaiairen
  • 2016-10-25 21:50:50
  • 230

介绍Python的@property装饰器的用法_python_脚本之家

介绍Python的@property装饰器的用法_python_脚本之家 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: ...
  • cdnight
  • cdnight
  • 2015-11-12 15:27:30
  • 1178

Python装饰器(Decorate)使用图解

一、装饰器是什么? Python装饰器其实就是一个返回值为函数的高阶函数,其中至少嵌套一个函数(作为返回值返回)。 二、装饰器工作原理。 遵循编程的闭合原则,在不修改...
  • ltz150
  • ltz150
  • 2017-11-20 17:05:39
  • 214

装饰器语法糖(@staticmethod/@classmethod/@property)原理剖析及使用场景说明

转载:http://blog.csdn.net/slvher/article/details/42497781 在阅读一些开源Python库的源码时,经常会看到在某个类的成员函数前,有类似于...
  • yugongpeng_blog
  • yugongpeng_blog
  • 2015-10-17 15:36:32
  • 1349

【Python笔记】装饰器语法糖(@staticmethod/@classmethod/@property)原理剖析及使用场景说明

在阅读一些开源Python库的源码时,经常会看到在某个类的成员函数前,有类似于@staticmethod或@classmethod或@property的语法糖。本质上,它们都是函数装饰器,只不过通常被...
  • slvher
  • slvher
  • 2015-01-07 19:31:14
  • 4482

python面试常问的几个内置装饰器:@staticmethod、@classmethod和@property

       之前在python笔试的时候,经常会遇到@staticmethod、@classmethod和@property的用法和区别,这三个也是python的内置装饰器,所以再来总结下:@sta...
  • chenzao123
  • chenzao123
  • 2018-03-02 13:30:24
  • 39

浅谈Python装饰器

浅谈Python装饰器 By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.csdn.net/MDL13412) 前置知识 一级对象 Python将一切视为 objec t的...
  • MDL13412
  • MDL13412
  • 2014-03-30 22:07:27
  • 42193
收藏助手
不良信息举报
您举报文章:python3.6中@property装饰器的使用
举报原因:
原因补充:

(最多只允许输入30个字)