前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >装饰器

装饰器

作者头像
用户1679793
发布2018-04-28 09:50:10
7080
发布2018-04-28 09:50:10
举报

一。关于装饰器:

定义:本质是函数,(装饰其他函数)就是为其他函数添加附加功能

原则:1.不能修改被装饰函数的源代码

2.不能修改被装饰函数的调用方式

二.实现装饰器知识必备技能:

1.函数即“变量”

2.高阶函数

a.把一个函数名当做实参传给另外一个函数(在不修改被装饰函数源代码下为其添加功能)

b.返回值中包含函数名(不修改函数的调用方式)

3.嵌套函数

高阶函数 +嵌套函数=》装饰器

2.1函数即“变量”(一切皆对象)

在 python中,一切皆对象,变量是对象,函数是对象,类是对象,所有的一切都是对象。如下图所示,这里定义函数func,于是内存中就开辟属于func的内存空间,写入func的函数功能。随后在解释器上输入func函数的函数名,这时会返回一串指针地址,在python中所有的对象都会对应的指针地址,即指向内存中func函数的位置。如果在func函数名后加上(),这就说明func根据指针地址调用了func函数。

2.2高阶函数

变量可以指向函数,函数的参数能接受变量,那么一个函数可以 接受另一个函数作为参数,这种函数称为高阶函数。

如图定义func函数有x,y,f三个参数,执行func函数时将实参abs传形参f,func函数最后return两数的绝对值和

2.3嵌套函数

嵌套函数就是在一个函数内声明一个函数再调用

三装饰器初成

四。装饰器小成

以上的test只是刚好装饰没有返回值的函数,下面可以装饰存在返回值的函数

五.装饰器大成

此处模拟网站不同登陆方式的装饰器,使用一个装饰器,对不同的函数的附加不同的功能。 Home 函数使用密码登陆方式, bbs 函数使用另一种登入方式

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一。关于装饰器:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档