如何理解Python的类属性

python

属性的定义:python中的属性其实是普通方法的衍生。

操作类属性有三种方法:

1.使用@property装饰器操作类属性。

2.使用类或实例直接操作类属性(例如:obj.name,obj.age=18,del obj.age)

3.使用python内置函数操作属性。

属性存在的意义:

1、访问属性时可以制造出和访问字段完全相同的假象,属性由方法衍生而来,如果Python中没有属性,方法完全可以代替其功能。

2、定义属性可以动态获取某个属性值,属性值由属性对应的方式实现,应用更灵活。

3、可以制定自己的属性规则,用于防止他人随意修改属性值。

下面详细介绍三种操作类属性的方法:

1.使用@property装饰器操作类属性。

定义时,在普通方法的基础上添加@property装饰器;属性仅有一个self参数,调用时无需括号;

优点:

1) @property装饰器可以实现其他语言所拥有的getter,setter和deleter的功能(例如实现获取,设置,删除隐藏的属性)

2) 通过@property装饰器可以对属性的取值和赋值加以控制,提高代码的稳定性。 

实例代码1:

#encoding=utf-8                                                  

class Goods():  #新式类                                    

    @property                                                      

    def price(self): #查看属性值                                           

        print ('@property ')                                         

    @price.setter    #修改、设置属性                                     

    def price(self, value):                                        

       print ('@price.setter' )                                      

    @price.deleter   #删除属性                                          

    def price(self):                                               

       print ('@price.deleter')                                      

                                                                   

obj = Goods(50)                                                    

obj.price         # 自动执行 @property 修饰的 price 方法,并获取方法的返回值              

obj.price = 2000  # 自动执行 @price.setter 修饰的 price 方法,并将2000赋值给方法的参数

del obj.price     # 自动执行 @price.deleter 修饰的 price 方法 

结果输出:

@property

@price.setter

@price.deleter

更多学习内容,请点击Python学习网。

以上是 如何理解Python的类属性 的全部内容, 来源链接: utcz.com/z/524980.html

回到顶部