如何使用Python类装饰器,实现代码clean?今天番茄加速就来给大家讲解一下。
实现同样一个功能,用Java语言可能得50行,而用Python可能只需10行,可能很多读者在没有学Python前,就从用过Python的前辈那里,听说过这个,然后自己也开始去学Python的。
Python的确简洁、优雅,很多读者包括我,都为之着迷。
今天通过一个小例子,再次认识Python的clean之道:
我们想要检查每个参数,确保不能出现整数类型。使用类装饰器,便能做到clean,通用:
import functools
class ValidateParameters:
def init(self, func):
# 确保func被装饰后函数信息不被改变
functools.update_wrapper(self, func)
self.func = func
# 重写此方法,让类对象变得可调用
def call(self, *parameters):
if any([isinstance(item, int) for item in parameters]):
raise TypeEr