属性property

本文介绍了Python中如何处理类的私有属性,包括使用getter和setter方法进行访问控制,利用property装饰器简化属性访问,以及如何通过@property实现属性值的有效验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 私有属性添加getter和setter方法

class Test():
   def __init__(self):
       self.__num = 10 #私有属性
   def setter(self,num):
       self.__num = num
   def getter(self):
       return self.__num

2 使用property升级getter和setter方法

使用property的好处是等到我们以后想调用属性的setter和getter的方法时可以直接通过
    实例名.属性   来代替实例名.setter和getter方法
class Test():
   def __init__(self):
       self.__num = 10 #私有属性
   def setter(self,num):
       self.__num = num
   def getter(self):
       return self.__num
   num = property(getter,setter)

总结

    这样做的好处不仅写的简单而且可以将私有的变成类似共有的,相当于把方法进行了封装。开发者在对属性设置数据的时候更加方便,目的在于外部访问私有属性的时候比较的费劲(setter和getter),此时通过property创建了一个变量,它把setter和getter进行了封装

3. 使用property取代getter和setter方法

@property成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用

  • 将方法转换为只读
  • 重新实现一个属性的设置和读取方法,可做边界判定
class Money(object):
    def __init__(self):
        self.__num = 0

    @property
    def num(self):
        return self.__num

    @num.setter
    def num(self, value):
            self.__num = value

@property是装饰器,相当于穿了一件衣服


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值