python编程基础——装饰器

学习装饰器先了解一下知识点
1.先来了解下函数的引用

# 定义函数
def test():
    print("test-----")
    
# 调用函数
test()
# 引用函数
ret = test
print("--------华丽的分割线--------")
print(id(test))
print(id(ret))
# 通引用调用函数
ret()
  • 运行结果:

test-----
--------华丽的分割线--------
139750573302648
139750573302648
test-----

由上可知,和变量名一样,函数名只是一个函数代码空间的引用,当函数名赋值给一个对象的时候 就是引用传递,加上括号才能调用这个函数。

  1. 闭包
# 定义一个函数
def test1(num1):
    # 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包
    def test2(num2):
        print("num1-----%d" % num1)
        return num1 * num2
    # 这里返回的就是闭包的结果
    return test2

# 分析:当调用test1时只是返回内部函数test2的引用而test2函数并不会被调用,当调用ret时其实调用的是内部函数test2

# 给test函数赋值,这个10就是给参数num1
ret = test1(10)

# 注意这里的20其实给参数num2
result = ret(20)
print(result)
  • 运行结果:
    num1-----10
    200

3.装饰器
python装饰器就是用于拓展原来函数功能的一种函数。

猜你喜欢

转载自blog.csdn.net/Mr_Duanlife/article/details/82915147