之前就了解到了装饰器, 但是就会点皮毛, 而且对其调用方式感到迷茫,正好现在的项目我想优化,就想到了用装饰器, 因此深入研究了下装饰器.

先看下代码:
import time
# 将函数作为参数传入到此方法....
def timeif(func):
def wrapper(arg):
print("in wrapper() %s" % (arg))
start = time.clock()
func(arg)
end = time.clock()
print("used: %s %s" % (end-start, arg))
return wrapper
@timeif
def foo(arg):
print("in foo() %s" % (arg))
if __name__ == '__main__':
foo(" Hello ") # 表示执行foo函数....
我的疑惑就是明明return 的是一个函数名,按道理来讲,返回的就是一个函数地址啊!我理解有问题?随后上网查资料,又是闭包....但是我个人对它不感冒,随后自己分析,总结出了一段程序,看完你就知道原因了.
程序:
# coding=utf-8
# 带参数的函数 返回一个函数地址就行....
def funX(x):
def funY():
return x
return funY
# 不带参数的函数....
def funX1():
print("调用函数funX1")
def funY1():
print("调用函数funY1")
return funY1
if __name__ == '__main__':
# print(funX(5)()) # 调用有参数的嵌套函数...
print(funX1()()) # 调用无参数的嵌套函数...
这和我们的装饰器不像吗?这就是我们的装饰器!因此,我们可以按照上面的程序来理解,也就是说它是首先确定参数个数,随后分别传入的,下面,我们来改写代码:
# coding=utf-8
import time
# 将函数作为参数传入到此方法....
def timeif(func):
def wrapper(arg):
print("in wrapper() %s" % (arg))
start = time.clock()
func(arg)
end = time.clock()
print("used: %s %s" % (end-start, arg))
return wrapper
# @timeif
def foo(arg):
print("in foo() %s" % (arg))
if __name__ == '__main__':
timeif(foo)(' Hello')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# python
# 装饰器
# 快速了解Python中的装饰器
# Python中装饰器高级用法详解
# 浅谈python装饰器探究与参数的领取
# python装饰器实例大详解
# 详谈Python高阶函数与函数装饰器(推荐)
# python中装饰器级连的使用方法示例
# 详解 Python中LEGB和闭包及装饰器
# Python中装饰器学习总结
# 一个函数
# 到此
# 的是
# 我想
# 就会
# 出了
# 又是
# 你就
# 这就是
# 它是
# 我们可以
# 就行
# 对其
# 不像
# 看完
# 就想
# 不带
# 它不
# 前就
# 这和
相关文章:
建站主机如何安装配置?新手必看操作指南
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何制作一个表白网站视频,关于勇敢表白的小标题?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
建站之星与建站宝盒如何选择最佳方案?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何快速搭建个人网站并优化SEO?
如何通过wdcp面板快速创建网站?
建站之星安装步骤有哪些常见问题?
独立制作一个网站多少钱,建立网站需要花多少钱?
建站之星安装模板失败:服务器环境不兼容?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
代刷网站制作软件,别人代刷火车票靠谱吗?
网站专业制作公司有哪些,做一个公司网站要多少钱?
如何续费美橙建站之星域名及服务?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
如何在Windows 2008云服务器安全搭建网站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何在腾讯云服务器快速搭建个人网站?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
网站制作模板下载什么软件,ppt模板免费下载网站?
如何在IIS中新建站点并配置端口与IP地址?
建站之星展会模版如何一键下载生成?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何在建站之星绑定自定义域名?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
香港服务器WordPress建站指南:SEO优化与高效部署策略
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
制作网页的网站有哪些,电脑上怎么做网页?
青岛网站建设如何选择本地服务器?
制作企业网站建设方案,怎样建设一个公司网站?
php json中文编码为null的解决办法
油猴 教程,油猴搜脚本为什么会网页无法显示?
如何快速完成中国万网建站详细流程?
建站主机选哪家性价比最高?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
定制建站流程步骤详解:一站式方案设计与开发指南
如何通过山东自助建站平台快速注册域名?
实例解析Array和String方法
如何挑选最适合建站的高性能VPS主机?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在腾讯云服务器上快速搭建个人网站?
,石家庄四十八中学官网?
活动邀请函制作网站有哪些,活动邀请函文案?
建站之星24小时客服电话如何获取?
如何在香港服务器上快速搭建免备案网站?
宝塔建站助手安装配置与建站模板使用全流程解析
建站与域名管理如何高效结合?
*请认真填写需求信息,我们会在24小时内与您取得联系。