中联网站建设,红尘资源网,网站开发g,wordpress发布商品属性装饰器#xff1a; 三个装饰器实现对私有化属性_creat_time的get#xff0c;set#xff0c;del方法#xff1b; 三个装饰器下的方法名都一样#xff0c;通过message.creat_time的不同操作实现调用get#xff0c;set#xff0c;del方法。 __inti__#xff1a; 创建并… 属性装饰器 三个装饰器实现对私有化属性_creat_time的getsetdel方法 三个装饰器下的方法名都一样通过message.creat_time的不同操作实现调用getsetdel方法。 __inti__ 创建并私有化一个属性_creat_time class Message:def __init__(self):self._creat_time datetime.datetime.now() # 初始化一个创建时间 property 创建一个属性名就是方法名creat_time 对应的值就是return的值。 类比java就是springBoot框架的Bean注解 propertydef creat_time(self):return self._creat_time # 返回存储的时间
# 测试代码
message Message()
print(初始创建时间:, message.creat_time) creat_time.setter creat_time.setterdef creat_time(self, value):self._creat_time value # 设置新的创建时间
# 设置新的创建时间
message.creat_time datetime.datetime.now() datetime.timedelta(days1)
print(更新后的创建时间:, message.creat_time) creat_time.deleter creat_time.deleterdef creat_time(self):del self._creat_time#删除属性值 del message.creat_timeif getattr(message, _creat_time, None) is not None:print(message.creat_time) import datetimeclass Message:def __init__(self):self._creat_time datetime.datetime.now() # 初始化一个创建时间propertydef creat_time(self):return self._creat_time # 返回存储的时间creat_time.setterdef creat_time(self, value):self._creat_time value # 设置新的创建时间creat_time.deleterdef creat_time(self):del self._creat_time # 删除存储的时间# 测试代码
message Message()
print(初始创建时间:, message.creat_time)# 设置新的创建时间
message.creat_time datetime.datetime.now() datetime.timedelta(days1)
print(更新后的创建时间:, message.creat_time) property函数 私有化_name属性对外提供name属性的调用 import datetimeclass Message:def __init__(self,name):self._name namedef get_name(self):return self._namedef set_name(self,name):self._name namedef del_name(self):del self._namename property(get_name,set_name,del_name)obj Message(22)
print(obj.name)
obj.name 11
print(obj.name)
del obj.name
print(getattr(obj,name,None)) 异常 try 尝试捕获异常 except 捕获对应类型异常 as 类似sql语句的as给异常对象起个名字 raise 创建一个异常对象 try:data_list [1,2,1,2]print(data_list[1000])
except IndexError as e:raise Exception(错误)print(e) #不会输出
except Exception as e:print(e)
finally:print(abc) #最后输出 约束 就是接口python中的接口是在继承的基础上实现的并且可以多继承 from abc import abstractmethod
class Animal:def eat(self):raise NotImplementedError()abstractmethoddef run(self):passclass Dog(Animal):def eat(self):print(开吃)def run(self):print(跑啊)
dog Dog()
dog.run()
dog.eat()