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

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

大家好,我是皮皮。


一、前言


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

c640e1be2595577ae347a358180be5c4.png


二、解决过程


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

967e0f9d61645da93c39d8db64cc6691.png

代码如下:

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)

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

cdd1212f225a737161d340150573c2e.jpg

这里更新了下,如下:

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(),这样效果就出来了。

e08eb941f6201179321afda65c5ebd82.png


三、总结


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


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


小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。


相关文章
|
C语言
关于C语言中函数的知识总结(一)---函数的功能和分类
关于C语言中函数的知识总结(一)---函数的功能和分类
|
6月前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
50 0
|
7月前
|
Python
Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。
【5月更文挑战第11天】Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。在函数内部修改全局变量需用`global`关键字声明,否则会创建新局部变量。
151 2
|
7月前
|
开发者 Python
Python中的仅限位置参数:简化函数调用与提升代码清晰度
【4月更文挑战第17天】Python 3.8 引入了仅限位置参数,增强函数调用清晰度和安全性。通过`/`语法,开发者可指定某些参数只能按位置传递,防止顺序错误和不必要的关键字参数。这有助于提高代码可读性,确保参数正确传递,并在复杂函数中提升安全性。在实际应用中,仅限位置参数可用于明确参数位置、保持向后兼容性和增强函数安全性。
|
7月前
|
JavaScript 前端开发
js函数:函数是JS的基本组成单元,用于封装代码块以实现特定功能。理解函数的定义、调用和参数传递方式非常重要。具体案例详解
js函数:函数是JS的基本组成单元,用于封装代码块以实现特定功能。理解函数的定义、调用和参数传递方式非常重要。具体案例详解
63 1
|
Python
学习Python语言的语法,例如函数、类、模块、循环中的类详解
学习Python语言的语法,例如函数、类、模块、循环中的类详解
69 1
|
C语言
c 语言 无参无返函数,函数的调用
函数:c语言模块编程的核心语法。 作用:将代码按照功能划分为一段一段的独立的代码,有利于代码的管理,调试,维护。
130 1
实现一个函数,函数完成功能如下:
实现一个函数,函数完成功能如下:
|
人工智能 编译器 C语言
如何使用函数及函数的注意事项
目录 什么是函数? 如何调用函数? 函数的先后关系? 函数的变量空间? 什么是函数? 首先我们来说一说函数的作用,就是一块简单的代码接受零个或多个参数,做一件事情,并返回零个或一个值 void sum(int a,int b) { int i; int sum=0; for(i=a:i<=b;i++) { sum+=i; } printf("%d到%d的和是%d\n",a,b,sum); } 现在我们就写出了一个简单的求和函数和数学中的y=f(x)很像 函数名 sum 返回类型 void 参数表 int a,int b 函数体 大括号里的所有东西 函数头 大括号前
从零开始学Pyqt5之【如何解决自定义槽函数需要参数而信号没有参数传递的问题?(2种方式)】
从零开始学Pyqt5之【如何解决自定义槽函数需要参数而信号没有参数传递的问题?(2种方式)】