Python修饰符 (一)—— 函数修饰符 “@”
今天被问到Python函数修饰符,顺手写写。
Python函数修饰符,“@”,与其说是修饰函数倒不如说是引用、调用它修饰的函数。
举个栗子,下面的一段代码,里面两个函数,没有被调用,也会有输出结果:
def test(f):print "before ..."f()print "after ..."@test
def func():print "func was called"
直接运行,输出结果:
before ...
func was called
after ...
上面代码可以看出来,只定义了两个函数: test和func。没有地方调用它们。如果没有“@test”,运行应该是没有任何输出的。
但是,Python解释器读到函数修饰符“@”的时候,后面步骤会是这样了:
1. 去调用 test函数,test函数的入口参数就是那个叫“func”的函数;
2. test函数被执行,入口参数的(也就是func函数)会被调用(执行);
换言之,修饰符带的那个函数的入口参数,就是下面的那个整个的函数。有点儿类似JavaScript里面的 function a (function () { ... });
再来看一个例子:
def test(func):func()print "call test"def test1(f):f()print "call test1"def main():@testdef fun():print "call fun"@test1def fun1():print "call fun1"
main()
输出结果:
call fun
call fun1
call test1
call test
需要注意的:
1. 函数先定义,再修饰它;反之会编译器不认识;
2. 修饰符“@”后面必须是之前定义的某一个函数;
3. 每个函数可以有多个修饰符。
Python修饰符 (一)—— 函数修饰符 “@”相关推荐
- python @修饰符_python函数修饰符@的使用方法解析
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...
- python中函数修饰符_python中的函数修饰符
首先,什么是函数修饰符?函数修饰符就是对原有函数做一层包装.比如有以下两个函数: def func1(): print 'I am function func1' def func2(): print ...
- Python修饰符--函数修饰符 “@”
Python函数修饰符,"@",与其说是修饰函数倒不如说是引用.调用它修饰的函数. 举个栗子,下面的一段代码,里面两个函数,没有被调用,也会有输出结果: def test(f):p ...
- python函数修饰符@的使用
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...
- python修饰符的理解_python函数修饰符@的使用方法解析
这篇文章主要介绍了python函数修饰符@的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python函数修饰符@的作用是为现有函数增 ...
- python修饰符号的使用_Python 函数修饰符(装饰器)的使用
Python函数修饰符(装饰器)的使用 1.修饰符的来源 修饰符是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等. 修饰符是解决这类问题的绝佳设计,有了修 ...
- python修饰符作用_python函数修饰符@的使用
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...
- Python 字符串常见的语句,和练习题,字符串练习题 Python 切片函数修饰符 #精度和进制Python 字符串一些语句练课件练习题
字符串练习题 Python 切片 函数修饰符 #精度和进制 Python 字符串一些语句练 课件练习题 4,.by 字符串的替换 方法 描述 replac ...
- python 函数修饰_python修饰函数 python 函数有多个修饰符
define的意思,用来定义函数. 如: def 函数名(参数1, 参数2, --, 参数N): 执行语句 # 例:简单的函数使用# 定义函数def hello(): print 'hello pyt ...
最新文章
- 机器学习Tips:关于Scikit-Learn的 10 个小秘密
- linux awk 用一个或多个空格做分隔符
- 基本数据结构----循环链表
- Oracle优化07-分析及动态采样-DBMS_STATS 包
- 【三分钟学习FFMPEG一个知识点】FFMPEG关于avio_alloc_context申请使用内存释放问题
- Swift3中数组创建方法
- C语言ffmpeg合并多个视频,ffmpeg合并多个视频
- netty SimpleChannelInboundHandler类继承使用
- Python实现视频语音和字幕自动审查功能
- SQL截断增强功能:SQL Server 2019中的静默数据截断
- table td 纵向求和
- 英伟达驱动怎么设置显示帧数?
- 多分辨率风场数据可视化
- Thinkphp6 think-queue redis 执行异步任务
- TiDB PCTP(PingCAP 认证 TiDB 数据库专家) 认证考试高分攻略
- 从身份证号提取出生日期
- Photoshop插件-秋色效果-脚本开发-PS插件
- PPT使用技巧 二 调整PPT文字和图片的层级关系
- 精美火锅美食特产PPT模板
- 网页下载的视频看不了怎么回事 网页下载的视频怎么找不到了
热门文章
- 【资料分享】《建筑给水排水设计标准》(GB50015-2019)
- linux系统dmesg日志,Linux系统日志
- 【实现一套爬虫数据抓取平台】[0-0] 序篇
- tui-editor(富文本编辑器插件)安装报错处理方法
- 网络互助滥施 “人肉引擎”演变成“网络暴力”
- 编译过程的一些小知识——内部连接与外部连接
- 设置cros响应头实现跨域
- LINUX安装rhel字符界面教程
- 第三篇:基于小米手机的,Magisk面具教学
- git branch 管理分支(超详细)