美文网首页Python学习大数据 爬虫Python AI Sql
零基础学习 Python 之装饰器才露尖尖角

零基础学习 Python 之装饰器才露尖尖角

作者: 1a076099f916 | 来源:发表于2019-01-24 14:33 被阅读6次
零基础学习 Python 之装饰器才露尖尖角

写在之前

今天我们要讲的装饰器,本质上也是闭包的一种应用,所以如果你没有看过昨天的文章,建议在看下面的内容之前回头去看一下闭包。加群:700341555可以获取Python入门学习资料!

零基础学习 Python 之装饰器才露尖尖角

装饰器

我们到现在已经知道,函数是对象,可以被传递,也能被嵌套。下面我们先来看一个很常见的小例子:

零基础学习 Python 之装饰器才露尖尖角

上述的例子中,first() 函数的参数是一个函数,如果我们用下面的方式来调用此函数:

零基础学习 Python 之装饰器才露尖尖角

结果如下:

零基础学习 Python 之装饰器才露尖尖角

这个就是向 first() 传递了函数对象 man()。对于这么一个问题,可以换成下面这种写法:

零基础学习 Python 之装饰器才露尖尖角

你如果对比之前的那段代码,你会发现这里面多了个奇怪的 @first,我们常常把类似的这种东西叫做语法糖,也叫糖衣语法,至于为什么。。可能是因为发明这个术语的人喜欢吃糖???(抖个机灵

维基百科中关于语法糖的解释是这样的:指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说,使用语法糖可以增加程序的可读性,从而减少程序代码出错的机会。

上面那段解释看看就好,我们用语法糖这种方式执行上面的代码的结果如下:

零基础学习 Python 之装饰器才露尖尖角

你会发现这种方式的结果和之前的结果一模一样,以上就是所谓的装饰器及其应用,first() 是装饰器函数,使用 @first 来装饰 man() 函数。

如果你看到这,你就会发现其实装饰器本质上就是一个函数,它把一个函数当做输入并且返回给另外的一个函数,就如上面所演示的一样。当然不只是函数可以作为输入,被装饰的类也是可以的,至于什么是类,使我们下个章节要学习的内容,如果感兴趣的话,可以提前看一看。

写在之后

这篇文章实际上只是介绍了装饰器的概念性的东西,关于装饰器,因为上面我说了,除了函数,被装饰的类也是可以的,因为还没有到类的部分,所以在这里只是浅尝辄止,等后面学类的时候,会把这部分再深入细致的探索下去,把这部分的坑给填上,敬请期待。

相关文章

  • 零基础学习 Python 之装饰器才露尖尖角

    写在之前 今天我们要讲的装饰器,本质上也是闭包的一种应用,所以如果你没有看过昨天的文章,建议在看下面的内容之前回头...

  • 零基础学习 Python 之装饰器才露尖尖角

    写在之前 今天我们要讲的装饰器,本质上也是闭包的一种应用,所以如果你没有看过昨天的文章,建议在看下面的内容之前回头...

  • python2 常见问题一览 1

    优秀博客:Python - 小何才露尖尖角 - 博客频道 - CSDN.NET (网上学习 笨办法学...

  • Python装饰器学习

    Python装饰器学习 Python装饰器学习(九步入门)基础部分根据此文来学习的,接下来将根据此文内容进行整理,...

  • 装饰器五部曲

    听说你学不会装饰器?Python基础之装饰器五部曲,带你轻轻松松学会装饰器 装饰器(decorator)是Pyth...

  • python 基础 07 装饰器

    python 基础 07 1. 装饰器

  • Python ☞ day 5

    Python学习笔记之 装饰器& 偏函数 & 异常处理 & 断言 & 文件读写 &编码与解码 装饰器 概念:是一个...

  • 装饰器模式

    介绍 在python装饰器学习 这篇文章中,介绍了python 中的装饰器,python内置了对装饰器的支持。面向...

  • Python基础学习之五装饰器

    装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返...

  • TypeScript基础入门之装饰器(三)

    转载 TypeScript基础入门之装饰器(三) 继续上篇文章[TypeScript基础入门之装饰器(二)] 访...

网友评论

    本文标题:零基础学习 Python 之装饰器才露尖尖角

    本文链接:https://www.haomeiwen.com/subject/pcgyjqtx.html