python--如何编写装饰器

  编写自定义装饰器有许多方法,但最简单和最容易理解的方法是编写一个函
数,返回封装原始函数调用的一个子函数。
>>> def mydecorator(function):
...     def _mydecorator(*args, **kw):
...         res = function(*args, **kw)
...         return res
...     return _mydecorator
...
  为子函数应用一个诸如_mydecorator之类的明确的名称,而不是wrapper这样
的通用名称是一个好习惯,因为明确的名称更方便在错误发生的时候回溯--可
以知道正在处理指定的装饰器。

  当装饰器需要参数是,必须使用第二级封装
>>> def mydecorator(arg1, arg2):
...     def _mydecorator(function):
...         def __mydecorator(*args, **kw):
...             res = function(*args, **kw)
...             return res
...         return __mydecorator
...     return _mydecorator
...

你可能感兴趣的:(python--如何编写装饰器)