创建可管理的对象属性

在面向对象编程中,把方法(函数)看作对象的接口。直接访问属性可能不安全,或设计上不够灵活。但使用调用方法形势上不如访问属性简洁。

使用property为类创建可管理的属性。

from math import pi

class Circle(object):
    def __init__(self, radius):
        self.radius = radius

    def getRaduis(self):
        return self.radius

    def setRaduis(self, value):

        if not isinstance(value, (int, float, long)):
            raise ValueError('格式不正确')
        self.radius = float(value)

    def getArea(self):
        return self.radius ** 2 * pi

    R = property(getRaduis, setRaduis)
    
# c = Circle(2)
'''属性访问'''
# c.radius 
# c.radius = 3
# c.radius = 'abd'没有抛出异常
'''方法调用'''
# c.getRaduis()
# c.setRaduis(3.3)
# c.setRaduis('sdd')抛出异常
c = Circle(2)
'''形式上是属性的访问,实际上是方法的调用'''
print c.R c.R = 3.5 print c.R #c.R = 'sds'

 

转载于:https://www.cnblogs.com/misslin/p/6703337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值