python 装饰物
导读:Python 中的装饰器是一种非常强大的工具,可以让我们方便地修改函数或者类的行为。装饰器本质上是一个特殊的函数,接受一个函数或者类作为参数,并且返回一个新的函数或者类。def my_decorator(func :def wrapper(...
Python 中的装饰器是一种非常强大的工具,可以让我们方便地修改函数或者类的行为。装饰器本质上是一个特殊的函数,接受一个函数或者类作为参数,并且返回一个新的函数或者类。
def my_decorator(func):def wrapper(*args, **kwargs):print('Before function is called.')result = func(*args, **kwargs)print('After function is called.')return resultreturn wrapper@my_decoratordef my_function():print('Function is called.')my_function()上面的例子演示了一个简单的装饰器,当 my_function 被调用时,会先执行 my_decorator 函数,并且在执行 my_function 函数的前后打印一些信息。
可以看到,装饰器的使用非常方便,通过在函数上添加 @my_decorator 装饰器就可以完成函数行为的修改。如果要取消装饰器的效果,只需要在函数上添加 @my_decorator 装饰器即可。
def my_function():print('Function is called.')@my_decoratordef my_function_decorated():print('Function is called.')my_function()my_function_decorated()装饰器还可以接受参数,这样就可以让装饰器更加灵活。下面是一个接受参数的装饰器示例:
def repeat(num):def my_decorator(func):def wrapper(*args, **kwargs):for i in range(num):func(*args, **kwargs)return wrapperreturn my_decorator@repeat(num=3)def my_function():print('Function is called.')my_function()上面的例子定义了一个 repeat 装饰器,接受一个 num 参数,表示要重复执行多少次被装饰的函数。当使用 @repeat(num=3) 装饰 my_function 函数时,my_function 会被重复执行 3 次。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: python 装饰物
本文地址: https://pptw.com/jishu/339747.html
