语法糖 装饰器

1、在python中    @函数名 就叫语法糖

2、装饰器代码通式:

  

 1 def set_fun(func):
 2
 3     def call_fun(*args,**kwargs):
 4         return func(*args,**kwargs)
 5     return call_fun
 6
 7 @set_fun
 8 def test(a, b):
 9     print(a+b)
10
11 if __name__ == ‘__main__‘:
12   test(1, 2) # 调用函数
13         # 运行结果为 3

原文地址:https://www.cnblogs.com/m-j-y/p/8746790.html

时间: 2024-08-25 12:29:35

语法糖 装饰器的相关文章

python_装饰器_语法糖

什么是高阶函数? -- 把函数名当做参数传给另外一个函数,在另外一个函数中通过参数调用执行 #!/usr/bin/python3 __author__ = 'beimenchuixue' __blog__ = 'http://www.cnblogs.com/2bjiujiu/' def func_x(x): return x * 2 def func_y(y): return y * 3 def func_z(x, y): # 等价于 return func_x(5) + func_y(3) r

python函数装饰器

学习装饰器前提需要了解高阶函数,函数嵌套,函数闭包 python函数装饰器,顾名思义就是装饰函数,为函数添加新功能的的一种方式. 为什么要使用装饰器呢? 因为函数在运行时,如果不使用装饰器对函数进行功能添加,需要修改函数源代码,这样修改无疑会增加程序的冗余和复杂性,也不便于程序员对其进行修改.使用装饰器,可以在不改变函数源代码和调用方式的前提下,使用语法糖@装饰器,对函数功能进行添加. 装饰器本质上就是一个函数. 我们使用一个简单的例子来实现: import time #这是一个装饰器函数名为t

函数-装饰器

1.装饰器 装饰器实际上就是一个对函数中的闭包的实际应用,他的本质是一个闭包函数. 2.装饰器的功能: 再不修改原函数及其调用方式的情况下对原函数功能进行扩展. 3.装饰器的固定格式 1 def timer(func): 2 def inner(*args,**kwargs): 3 '''执行函数之前要做的''' 4 re = func(*args,**kwargs) #*args.**kwargs将动态参数接收到的元祖解压成分散的个体,re接收被装饰函数中的返回值 5 '''执行函数之后要做的

函数的闭包和装饰器

函数的闭包: #1.闭 必须是内部的函数 #2.包 引用了外部作用域中的变量 命名空间: 一共有三种命名空间从大范围到小范围的顺序:内置命名空间.全局命名空间.局部命名空间 作用域(包括函数的作用域链): 小范围的可以用大范围的但是大范围的不能用小范围的范围从大到小(图) 在小范围内,如果要用一个变量,是当前这个小范围有的,就用自己的如果在小范围内没有,就用上一级的,上一级没有就用上上一级的,以此类推.如果都没有,报错 函数的嵌套: 嵌套调用 嵌套定义:定义在内部的函数无法直接在全局被调用 函数

Go的魅力, 函数式(柯里化, 闭包, 高阶函数), [email protected]装饰器, 封装

Go朴实无华的代码风格是函数式的无尽魅力. 函数式有3个别名, 高大上的"柯里化", 编程语言的"闭包", 数学气息的"高阶函数". Python没有Go的func匿名函数, 但是具有可爱的语法糖(@装饰器). 编程语言都是相通的, 层层封装造就了灵活的风格. 理解了Go的"函数式", 再理解内嵌/接口/重写(设计模式), 剩下的是各个领域的工具了, 就可以写出服务于业务的代码. 感悟于 函数式 http://www.jian

python学习第十一天 装饰器

1.作业讲解 # 2.写函数,接收n个数字,求这些参数数字的和.def sum_func(*args): total = 0 for i in args: total += i return totalprint(sum_func(1,2,3,8,23,6)) # 3.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?# a=10# b=20# def test5(a,b):# print(a,b)# c = test5(b,a)# print(c) # 4.读代码,回答:代码中,

Python 装饰器【转】

相关 函数作用域LEGB:L>E>G>B L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间(闭包) G:global全局作用域 B:build-in内置作用域 闭包Closure概念:内部函数中队enclosing作用域的变量进行引用,将该变量放到Closure的属性中,当内部函数处理时,可以直接使用该变量. 函数实质与属性 函数是一个对象 函数执行完成后内部变量回收 函数属性 函数返回值 闭包作用:1.封装 2.代码复用 装饰器 装饰器其实就是闭包所带来的一个

铁乐学Python_day12_装饰器

[函数的有用信息] 例: def login(user, pwd): ''' 功能:登录调用 参数:分别有user和pwd,作用分别是用户和密码: return: 返回值是登录成功与否(True,False) ''' print(user, pwd, "欢迎登录") print(login.__name__) #查看函数名字 print(login.__doc__) #查看函数注释 login 功能:登录调用 参数:分别有user和pwd,作用分别是用户和密码: return: 返回值

Python小程序练习二之装饰器小例子

Python小程序练习二之装饰器小例子 装饰器: 装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足: 1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 那么根据需求,同时满足了这两点原则,这才是我们的目的. 装饰器的原则组成: < 函数+实参高阶函数+返回值高阶函数+嵌套函数+语法糖 = 装饰器 > 错误例子: 1.1Decorators.py 1 # The aut