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修饰符--函数修饰符 “@”相关推荐

  1. python中的函数修饰器

    python中的函数修饰器 – @wrapper 简介 类似于C#的属性.Java的注解,python也有对应的修饰符.从Python2.7和Python3开始,提供了以'@'为标示的修饰符,可以在模 ...

  2. python中的函数修饰符

    这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- coding:gbk -*- '''示例1 ...

  3. python修饰符作用_python函数修饰符@的使用

    python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...

  4. python中函数修饰符_python中的函数修饰符

    首先,什么是函数修饰符?函数修饰符就是对原有函数做一层包装.比如有以下两个函数: def func1(): print 'I am function func1' def func2(): print ...

  5. python函数修饰符@的使用

    python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...

  6. python @修饰符_python函数修饰符@的使用方法解析

    python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...

  7. python修饰符的理解_python函数修饰符@的使用方法解析

    这篇文章主要介绍了python函数修饰符@的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python函数修饰符@的作用是为现有函数增 ...

  8. python修饰符号的使用_Python 函数修饰符(装饰器)的使用

    Python函数修饰符(装饰器)的使用 1.修饰符的来源 修饰符是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等. 修饰符是解决这类问题的绝佳设计,有了修 ...

  9. Python 字符串常见的语句,和练习题,字符串练习题 Python 切片函数修饰符 #精度和进制Python 字符串一些语句练课件练习题

    字符串练习题 Python 切片 函数修饰符 #精度和进制 Python 字符串一些语句练 课件练习题 4,.by     字符串的替换         方法    描述         replac ...

最新文章

  1. Android应用安全与防范之签名校验
  2. 使用ln -s解决库冲突的问题
  3. console的高级使用
  4. element js 包含字符_selenium3.x(10)js弹框处理
  5. python的scale方法的变体以及使用_Python with用法实例
  6. Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)
  7. hdu 1054 Strategic Game
  8. 使用github客户端上传本地项目到github
  9. asp.net session对象
  10. 139邮箱java版,139邮箱登录及发送短信
  11. 如何用python编写程序打开csv格式文件
  12. BUG一词是如何来的?
  13. Unity技术手册 - 粒子基础主模块属性-上
  14. 教你用身份证号查社保卡号 个人电脑号
  15. 如何从 OpenVINO 的主分支构建 Python Wheel 包
  16. 读心术python_有哪些厉害的观人术读心术?
  17. Linux操作系统网络驱动程序编写
  18. oracle数据库实现汇总报表的方法
  19. STM32直流减速电机控制篇(一)PWM调速
  20. c语言题之二维数组的查找

热门文章

  1. Redis(三)、支持数据类型及常用操作命令
  2. mysql的sql经典写法收录
  3. mysqlsla安装与慢查询分析
  4. 两个Liunx服务器之间的文件夹迁移
  5. 开源评论:QQ真的会“开放”和“共享”吗?
  6. 解决MSN无法登录问题的意外收获
  7. Backbone.js入门学习资源
  8. 基本线程同步(五)使用Lock同步代码块
  9. jquery工具方法parseJSON
  10. [转]Java输入输出流的使用详细介绍