首页 > 其他分享 >通过装饰器打印最大值与根据传入参数进行打印次数

通过装饰器打印最大值与根据传入参数进行打印次数

时间:2024-07-24 21:51:07浏览次数:7  
标签:return 最大值 打印 wrapper 次数 inner print data def

点击查看代码
# 写一个带参数的装饰器,实现:参数是多少,被装饰的函数就要执行多少次,把每次结果添加到列表中,最终返回列表。
def xxx(counter):
    print('x函数')
    def wrapper(func):
        print('wrapper函数')
        def inner(*args,**kwargs):
            v = []
            for i in range(counter):
                data = func(*args,**kwargs) # 执行原函数并获取返回值
                v.append(data)
            return v
        return inner
    return wrapper

@xxx(5)
def index():
    return 8

v = index()
print(v)

# 写一个带参数的装饰器,实现:参数是多少,被装饰的函数就要执行多少次,并返回最后一次执行的结果【面试题】
def xxx(counter):
    print('x函数')
    def wrapper(func):
        print('wrapper函数')
        def inner(*args,**kwargs):
            for i in range(counter):
                data = func(*args,**kwargs) # 执行原函数并获取返回值
            return data
        return inner
    return wrapper

@xxx(5)   #xxx先自执行,返回wrapper  等价于: @wrapper,此时内部在执行一次:wrapper 返回inner,
#此时 inner = Index函数, 当作参数进行传递
def index():
    return 8

v = index()
print(v)
# 写一个带参数的装饰器,实现:参数是多少,被装饰的函数就要执行多少次,并返回执行结果中最大的值。 面试题
def xxx(counter):
    print('x函数')
    def wrapper(func):
        print('wrapper函数')
        def inner(*args,**kwargs):
            value = 0
            for i in range(counter):
                data = func(*args,**kwargs) # 执行原函数并获取返回值
                if data > value:
                    value = data 
            return value
        return inner
    return wrapper

标签:return,最大值,打印,wrapper,次数,inner,print,data,def
From: https://www.cnblogs.com/jhchena/p/18321844

相关文章

  • Python打印类的属性
    一、使用__dict__打印类的属性classPerson:def__init__(self,name,age):self.name=nameself.age=ageperson=Person("Tom",18)print(person.__dict__)使用__dict__方法可以直接打印出类的属性及其对应的值。上述代码中,我们首先定义了一个P......
  • 单调队列-滑动窗口最大值
    题目:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。思路:通过双端队列,因为只看得到k个数字,所以先在队列放入k个数字,并且每次放入时都要将他与......
  • C# 打印菱形的程序(Program to print the Diamond Shape)
     给定一个数字n,编写一个程序来打印一个有2n行的菱形。例子://C#Codetoprint //thediamondshapeusingSystem;classGFG {     //Printsdiamondpattern  //with2nrows  staticvoidprintDiamond(intn)  {    ints......
  • JAVA 打印菱形的程序(Program to print the Diamond Shape)
    给定一个数字n,编写一个程序来打印一个有2n行的菱形。例子://JAVACodetoprint //thediamondshapeimportjava.util.*;classGFG{     //Printsdiamondpattern  //with2nrows  staticvoidprintDiamond(intn)  {    i......
  • C++ 打印菱形的程序(Program to print the Diamond Shape)
    给定一个数字n,编写一个程序来打印一个有2n行的菱形。例子:  //C++programtoprintdiamondshape//with2nrows #include<bits/stdc++.h>usingnamespacestd;//Printsdiamondpatternwith2nrows voidprintDiamond(intn) {   intspace=n......
  • Python使用Visual Studio打印功能不显示输出
    任务:检查一个整数是正数还是负数。检查整数是否能被2整除。当输入0时,我需要退出循环并报告每个计数和总和。print函数没有显示任何输出。这是我从defmain()开始使用的代码defmain():countpositive=0countnegative=0count_divisible_by_2=0sump......
  • 用 Count 注释的查询集正在计算错误发生次数
    我想计算名称在查询集中出现的次数:items=self.get_queryset()items=items.values("name").annotate(count=Count("name")).order_by("-count")其中get_queryset()返回带有一些过滤器和注释的项目列表。defget_queryset(self):return(sel......
  • 交替打印数字和字母
    /*问题描述使用两个goroutine交替打印序列,一个goroutine打印数字,另外一个goroutine打印字母,最终效果如下:12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728*/funcQuestionOne(){ numChan,letterChan:=make(chanstruct{}),make(ch......
  • 用C语言打印杨辉三角形:**
    用C语言打印杨辉三角形:1.杨辉三角形规律:1.每行数字左右对称,由1开始逐渐变大,然后变小,回到1。2.第n行的数字个数等于n,第n行的第一个和最后一个数字都是1。3.对于第i行,除首尾两个1之外,任意位置的数等于它肩上的两个数之和。即第i行第j个数等于第i-1行第j-1个数与第i-1行第......
  • laravel: 调试打印sql
    一,代码:<?phpnamespaceApp\Models;useIlluminate\Database\Eloquent\Factories\HasFactory;useIlluminate\Database\Eloquent\Model;useIlluminate\Support\Facades\DB;classReadLogModelextendsModel{useHasFactory;//定义关联的数据表......