Python3的特性property(1)

 1 # 特性Property
 2 class Rectangle:
 3     def __init__(self):
 4         self.width = 0
 5         self.height = 0
 6     
 7     def set_size(self,size):
 8         self.width, self.height = size
 9     
10     def get_size(self,size):
11         return self.width, self.height
12     
13     # 注意:获取方法在前,设置方法在后
14     size = property(get_size,set_size)

通过调用函数property并将存取方法作为参数(获取方法在前,设置方法在后)创建一个特性,然后将名称size关联到这个特性。

这样,就能以同样的方式对待width、height和size,而无需关心它们是如何实现的。

1 r = Rectangle()
2 r.width = 10
3 r.height = 5
4 print(r.size)
5 
6 r.size = 150,100
7 print(r.width, r.height)

输出:

(10, 5)
150 100

实际上,调用函数property时,还可不指定参数、指定一个参数、指定三个参数或指定四个参数。

参数名分别为:fget \ fset \ fdel \ doc

(1)没有指定任何参数:

创建的特性将既不可读也不可写;

(2)只指定一个参数(获取方法get):

创建的特性将是只读的;

(3)第三个参数是可选的:

指定用于删除属性的方法(这个方法将不接受任何参数);

(4)第四个参数是可选的:

指定一个文档字符串

猜你喜欢

转载自www.cnblogs.com/gepu1991/p/9135643.html
今日推荐