分享

编写一个闭包函数,要实现的功能是计数功能

 Python进阶者 2023-02-10 发布于广东

回复“资源”即可获赠Python学习资料

泉声咽危石,日色冷青松。

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个Python装饰器的问题,这里拿出来给大家分享下,一起学习下。

二、解决过程

这里【东哥】给出了解答,其实这个题目就是在考你装饰器的内容。

代码如下:

count = 0
def wrapper(func):
    def inner(*args, **kwargs):
        global count
        count += 1
        result = func(*args, **kwargs)
        return result
    return inner


# while True:
#     @wrapper
#     def calc(count):
#         print(count)
#
#     calc(count)
for i in range(10):
    @wrapper
    def calc(count):
        print(count)

    calc(count)

注释的那块是死循环,不过代码稍微有点冗余。

这里更新了下,如下:

count = 0
def wrapper(func):
    def inner(*args, **kwargs):
        global count
        count += 1
        result = func(*args, **kwargs)
        return result
    return inner


@wrapper
def calc():
    print(count)


calc()

因为调用了一次,下面再加一个calc(),这样效果就出来了。

三、总结

大家好,我是皮皮。这篇文章主要分享了Python的装饰器问题,针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

最后感谢粉丝【杰】提问,感谢【月神】、【东哥】给出的具体解析和代码演示,感谢【dcpeng】等人参与学习交流。

------------------- End -------------------

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多