python面向对象(3):特性property和异常结合
问题引出
在业务处理时经常需要在数据的读取和存入前对数据进行预处理,通过@property和@*.setter两个装饰器就可以方便的实现。
@property
python中的@property装饰器可以总结为两个作用:
- 让函数可以像普通变量一样使用
- 对要读取的数据进行预处理
from mianxiangduixiang.try1 import ageError
class T(object):
def __init__(self,age):
self.age=age
@property
def Marrtage(self):
return self.age
@Marrtage.setter
def Marrtage(self,ccc):
try:
self.age=self.age+ccc
if self.age<19:
raise ageError(self.age)
else:
pass
except ageError :
print('发现异常')
finally:
print('结束')
a=T(12)
a.Marrtage=5
print(a.Marrtage)
异常类
class ageError(Exception):
def __init__(self,age):
self.age=age
print(self.age,'太小')
结果
17 太小
发现异常
结束
17

浙公网安备 33010602011771号