python特性 property_python的property语法的使用

Python中有一个property的语法,它类似于C#的get set语法,其功能有以下两点:将类方法设置为只读属性;

实现属性的getter和setter方法;

下面着重说明这两点:

将类方法设置为只读属性

首先请阅读下面的代码class Book(object):

def __init__(self, title, author, pub_date):

self.title = title

self.author = author

self.pub_date = pub_date

@property

def des_message(self):

return u'书名:%s, 作者:%s, 出版日期:%s' % (self.title, self.author, self.pub_date)

在这段代码中,将property作为一个装饰器修饰des_message函数,其作用就是将函数des_message变成了类的属性,且它是只读的。效果如下:

wKioL1guTGuBtK-OAACOyQMIQRY673.png

如上图所示,方法变成了属性,可以用访问属性的方式访问它。但是如果修改它的值,则会报错AttributeError错误,它是只读的

实现属性的getter和setter方法

接着查看以下代码:class Array(object):

def __init__(self, length=0, base_index=0):

assert length >= 0

self._data = [None for i in xrange(length)]

self._base_index = base_index

def get_base_index(self):

return self._base_index

def set_base_index(self, base_index):

self._base_index = base_index

base_index = property(

fget=lambda self: self.get_base_index(),

fset=lambda self, value: self.set_base_index(value)

)

这里我们给类Array设置了一个base_index属性,它使用property实现了base_index的fget,fset功能,base_index是可读可写的,效果如下:

wKioL1guUM_zD-dvAAAu1Adzu_8586.png

如上图所示,base_index是可读可写的。

最后

property是Python的很好的语法特性,我们应该在编程中经常使用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值