python类属性及@property装饰器的简单用法

本文详细介绍了Python中类属性的三种操作方式,特别是使用@property装饰器进行属性访问控制。通过@property可以实现getter、setter和deleter功能,增强代码的稳定性和灵活性。文中通过实例展示了如何定义和使用@property,以及它在防止属性值被随意修改方面的作用。
摘要由CSDN通过智能技术生成

属性的定义: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装饰器可以对属性的取值和赋值加以控制,提高代码的稳定性。 

实例:

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()
obj.price         # 自动执行 @property 修饰的 price 方法,并获取方法的返回值
obj.price = 2000  # 自动执行 @price.setter 修饰的 price 方法,并将2000赋值给方法的参数
del obj.price     # 自动执行 @price.deleter 修饰的 price 方法
结果输出:
@property
@price.setter
@price.deleter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值