python 装饰器1
来源:互联网 发布:单片机小车制作流程 编辑:程序博客网 时间:2024/05/18 16:39
装饰器用于在代码中’标记‘函数,或者以某种方法增强函数的行为。这是一种强大的功能,但如果想完全了解,必须要理解闭包。
nonlocal是新近出现的保留关键字,在python3.0中引入。作为python程序员,如果严格遵守基于类的面向对象的编程方式,即便不知道这个关键字也没什么影响。然而,如果你想
自己实现函数装饰中有用处之外,闭包还是回调式异步编程函数式编程的风格的基础
装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。装饰器可能会处理被装饰的函数,然后把他返回,或者将其替换成另一个函数或可调用对象。
假如有个名为decorate的装饰器:
@decorate
def target():
print('running target()')
上述代码的效果与下述写法一样:
def target():
print('running target()')
target = decorate(target)
两种写法的最终结果一样:上述两个代码片段执行完毕后得到的target不一定是原来那个target函数,而是decorate(target)返回的函数。
为了确认被装饰的函数会被替换。
def deco(func):
def inner():
print('running inner()')
return inner #1
@deco
def target(): #2
print('running target()')
target()#3
running inner()
target #4
<function deco.<locals>.inner at 0x10063b598>
1deco返回inner函数对象
2使用deco装饰target
3调用被装饰的target其实会运行inner
4审查对象,发现target现在是inner的引用
严格来说,装饰器只是语法糖。如前所示,装饰器可以像常规的可调用对象那样调用,其参数是另一个函数。有时,这样做更方便,尤其是做元编程(在运行时改变程序的行为)时。
综上,装饰器的一大特性是,能把被装饰的函数替换成其他函数。第二个特性是,装饰器在加载模块时立即执行。
- Python装饰器1
- python 装饰器1
- python装饰器 示例1
- python装饰器装饰类
- [python]python装饰器
- python装饰器之入门1
- Python-Day04-装饰器(1)
- python学习笔记-装饰器1
- Python装饰器学习
- Python装饰器
- python 装饰器
- Python装饰器
- python 装饰器 应用
- python 装饰器2
- Python装饰器学习
- python装饰器
- python装饰器
- python 装饰器入门
- 数据结构与算法C++描述(1)---线性表的基本操作
- Calendar
- tensorflow 加载预训练模型
- ListView优化
- CGI 和fastcgi一级php-fpm
- python 装饰器1
- 微信小程序picker组件下拉框选择某个值动态添加input输入框
- iPhoneX的faceID到底是一种怎样风骚的操作?
- c# 怎样实现用几张图片制作 gif?怎样对图片像素值进行修改?上代码
- SIGSEGV与SIGBUS
- [js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程
- python 反射
- [PyQt]使用Qt Designer设计师完成PyQt界面图标设计
- Vue.js2.0 入门实例(二)(小试牛刀)