python面向对象(3):特性property和异常结合

问题引出

  在业务处理时经常需要在数据的读取和存入前对数据进行预处理,通过@property和@*.setter两个装饰器就可以方便的实现。

@property

  python中的@property装饰器可以总结为两个作用:

  1. 让函数可以像普通变量一样使用
  2. 对要读取的数据进行预处理

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

posted @ 2021-07-01 15:12  Tester-**  阅读(45)  评论(0)    收藏  举报