装饰器是 Python 的核心特性之一。这篇讲内置装饰器的用法和自定义装饰器的实现。
一、@property
classStudent:def__init__(self,name,score):self.name=name self._score=score@propertydefscore(self):returnself._score@score.setterdefscore(self,value):ifvalue<0orvalue>100:raiseValueError("成绩必须在0-100之间")self._score=value二、@staticmethod
classUtils:@staticmethoddefis_valid_email(email):return"@"inemailand"."inemail三、自定义装饰器
deflog_time(func):defwrapper(*args,**kwargs):importtime start=time.time()result=func(*args,**kwargs)print(f"{func.__name__}耗时{time.time()-start:.3f}秒")returnresultreturnwrapper@log_timedefslow_function():importtime time.sleep(1)return"完成"💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!