Learning Python : 2 . property函数

本文介绍Python中如何使用property函数来实现对类属性的封装,通过示例代码展示如何自定义get和set方法来控制属性的读取和修改。

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

第九章:魔法方法   9.5 属性 

python里面没有私有变量的设定, 尽管可以在变量名前面加上 _ 来提醒,警告不要修改变量, 但其实还是可以强行修改.

类似其他语言,你可以定义一些 getX , setX 之类的函数来访问,修改变量.

但python里面提供了一个叫 "property函数" 的东西,这玩意儿可以让  直接访问,修改变量 与你自己定制的 get,set函数 映射起来.

具体的例子如下. 

假设有这么段代码(请自行忽略其中的内容,仅注意语法):


__metaclass__ = type
class Man :
    def __init__ ( self , size=15 ) :
          self.size = size
    def getSize ( self ) :
          print 'Get Size!'
          return self.size
    def setSize ( self , size ) :
          print 'Set Size!'
          self.size = size
# property函数的使用. (实际上它的实现不是函数,而是一个拥有很多方法的类 )
    size = property ( getSize , setSize )


然后你可以试着访问,修改变量.

>> diaosi = Man()
>> diaosi.size
Get Size!
>> print diaosi.size
Get Size!
15
>> diaosi.size = 14
Set Size!
>> print diaosi.size
Get Size!
14
>> .......


简化了客户代码. 且可以支持coder对属性访问,修改,删除等的设定. 

还有什么其他好处呢?暂时没想明白. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值