property初识

Posted eric818

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了property初识相关的知识,希望对你有一定的参考价值。

1、为什么要用property属性?

答:用property属性可以很方便的取值和设值,以前都是用方法来实现的,用方法的话还得考虑参数等等,不方便。

2、如何设置property属性?

答:有两种方法:

1>利用装饰器:

技术分享图片
 1 class Food(object):
 2     def __init__(self):
 3         self.old_price = 100
 4         self.discount = 0.8
 5 
 6     @property
 7     def price(self):
 8         new_price = self.old_price * self.discount
 9         return new_price
10 
11     @price.setter
12     def price(self, value):
13         self.old_price = value
14 
15     @price.deleter
16     def price(self):
17         del self.old_price
18 
19 obj = Food()
20 obj.price
21 obj.price = 200
22 del obj.price
View Code

2>利用类属性:

技术分享图片
 1 class Food(object):
 2     def __init__(self):
 3         self.old_price = 100
 4         self.discount = 0.8
 5 
 6     def get_price(self):
 7         new_price = self.old_price * self.discount
 8         return new_price
 9 
10     def set_price(self, value):
11         self.old_price = value
12 
13     def del_price(self):
14         def self.old_price
15 
16     
17         
18 
19      PRICE = property(get_price, set_price, del_price, "description...")
20 
21 obj = Food()
22 obj.price
23 obj.price = 200
24 del obj.price
View Code

 

以上是关于property初识的主要内容,如果未能解决你的问题,请参考以下文章

Java初识方法

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段

property初识

初识OpenGL 片段着色器(Fragment Shader)

初识OpenGL 片段着色器(Fragment Shader)

Vue报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object 的解决方法(代码片段