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

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)

 

阅读更多

没有更多推荐了,返回首页