专栏首页python3理解Python装饰器(一)

理解Python装饰器(一)

python装饰器

装饰器是什么?我也不知道该如何给装饰器下定义。

1. 装饰器是函数,因为从代码的层面上来说,它就是开发人员定义的一个函数而已;
2. 装饰器就像是类的继承一样,通过装饰符,来实现函数与函数、函数与类之间的"继承"
3. 装饰器是种特殊的语法,通过 `@函数名` 或者 `@类名` 来实现函数或类的继承,但是
    装饰器不是继承,装饰器装饰的函数会被当做参数传递给装饰器,这个功能又好像
    C++中的虚函数,装饰器装饰的函数用来修改装饰器本身的功能来实现额外功能的添加。

示例:人与超人

前提:人 - 会走、会说话、会哭、会笑、会吃饭;超人 - 会走、会说、会哭、会笑、会吃饭、会飞

class man(object):
    def __init__(self, f):
        self.f = f
    def __call__(self):
        print("我会走路")
        print("我会说话")
        print("我会哭")
        print("我会笑")
        print("我会吃饭")
        self.f()

@man
def Super_man():
    print("我是超人,我会飞")

Super_man()

运行结果:

个人看法

装饰器可以用来解决上述例子中的一类问题:功能不清楚且会增加。只要定义好装饰器, 可以很好的实现代码的复用提高代码的可读性。所以,想要对装饰器有更加深入的理解, 一定要多思考,把编程中遇到的可以用装饰器解决的问题给解决掉;另一点就是要多看 别人的代码,在别人的代码中找到一些不一样的用法,然后思考为什么那么用,如果合 理就借鉴别人的思路和方法。

Python装饰器的用语、细节

这部分内容在网上可以直接搜到,不进行记录,参考文章中提到的文章均有此模块的介绍

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【6】装饰器、闭包、偏函数、变量作用域问

      我是装饰的代码块   she is -3 years old ,Her name is 佳佳

    py3study
  • Python全栈学习_day002知识点

    py3study
  • python3--函数进阶

    TypeError: func() missing 4 required keyword-only arguments: 'a', 'b', 'c', and ...

    py3study
  • python进阶之装饰器

    上面的代码是不是就实现了计算程序运行时间的目的,那么如果我想计算别的函数的运行时间是不是也要在函数内部加上start和endtime来计算时间的语句,是不是超级...

    py3study
  • python

    列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

    Jinni
  • while else

    结论:while循环正常执行完不会执行else里边的代码,如果while循环被break中断则会执行else里边的代码

    py3study
  • 机器学习中导数最优化方法(基础篇)

    1. 前言 熟悉机器学习的童鞋都知道,优化方法是其中一个非常重要的话题,最常见的情形就是利用目标函数的导数通过多次迭代来求解无约束最优化问题。实现简单,codi...

    IT派
  • LeetCode 1410. HTML 实体解析器(哈希map)

    「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。

    Michael阿明
  • AkShare-另类数据-彭博亿万富豪指数

    本接口提供彭博亿万富豪指数,由于源数据的问题,缺少第 442 位富豪的资料,所以最终只返回 499 个数据。第 442 位神秘富豪到底是谁?

    AkShare
  • python中3种调用可执行文件.exe

    方法一、os.system()  会保存可执行程序中的打印值和主函数的返回值,且会将执行过程中要打印的内容打印出来

    py3study

扫码关注云+社区

领取腾讯云代金券