Fork me on GitHub

Python语言中函数装饰器总结

目录

  • 背景
  • 第一部分 包和模块
  • 第二部分 Import 方法
  • 第三部分 命名空间(namespace)
  • 第四部分 Import的过程
  • 第五部分 将模块、包的路径加入检索路径
  • 参考文献及资料

背景

https://foofish.net/python-decorator.html

前面章节中,我们已经讲解了 Python 内置的 3 种函数装饰器,分别是 @staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。

在Python语言中,一切皆为对象,甚至于函数。函数可以像普通变量一样当做参数传给别的函数,也可以赋值给其他变量。我们看一下下面的例子:

1
2
3
4
5
6
7
8
9
10
11
12
def func1():
print("func1")

def func2(func):
func()
print("func2")

func2(func1)

del func1
func3 = func1
func3()
  • func1作为参数传给func2
  • func3指向函数func1,即使func1被删除。

第一部分

装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

参考文章

1、http://www.cnblogs.com/russellluo/p/3328683.html#

2、https://github.com/Liuchang0812/slides/tree/master/pycon2015cn

本文标题:Python语言中函数装饰器总结

文章作者:rong xiang

发布时间:2022年04月18日 - 10:04

最后更新:2022年10月25日 - 23:10

原始链接:https://zjrongxiang.github.io/posts/b549ebf/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%