Python装饰器如何实现闭包功能?

2026-06-10 21:071阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计478个文字,预计阅读时间需要2分钟。

Python装饰器如何实现闭包功能?

封闭的功能和作用:* 封闭的作用是增强原有函数的功能。* 在某些情况下,不能在原有函数上直接增加内容,而封闭可以在外部函数中定义一个内部函数,并引用原有函数,从而增加内容。

闭包的功能和作用:

*闭包的作用是用来增强原有函数的功能
*在有些情况下,不能在原有的函数上增加内容,而闭包可以在外部函数中定义一个内部函数,并引用原来的函数,增加内容,随后返回这个内部函数


Python装饰器如何实现闭包功能?

举个例子,如下(要求不能改变sum函数):
sum函数(主函数)主要是将1到100的数都加起来。
show函数(辅助函数)中定义了一个show_in函数在里面写入增加的内容并引用sum函数,随后将show_in返回,返回后的函数是增强后的函数。


def sum():
sumdate = 0
for i in range(1,101):
sumdate += i
print(sumdate)

def show(fun):
def show_in():
print('1到100的和:')
fun()
return show_in

my_sum = show(sum) #将返回的函数给了my_sum,此时这里的my_sum就不是普通的变量了,而是一个函数
my_sum() #调用my_sum


输出结果是:
1到100的和:
5050


*还能将两个函数合并在一起使用,并产生一个新函数

import time

def odd_sum():
sumdate = 0
for i in range(1,101):
if i%2 == 1 :
sumdate += i
print(sumdate)

def even_sum():
sumdate = 0
for i in range(1,101):
if i%2 == 0 :
sumdate += i
print(sumdate)

def show(fun1,fun2):
def show_in():
print('1到100的奇数和:')
fun1()
print('1到100的偶数和:')
fun2()
return show_in

sum = show(odd_sum,even_sum) #将返回的函数给了sum
sum() #调用sum函数


输出结果是:
1到100的奇数和:
2500
1到100的偶数和:
2550



标签:功能和

本文共计478个文字,预计阅读时间需要2分钟。

Python装饰器如何实现闭包功能?

封闭的功能和作用:* 封闭的作用是增强原有函数的功能。* 在某些情况下,不能在原有函数上直接增加内容,而封闭可以在外部函数中定义一个内部函数,并引用原有函数,从而增加内容。

闭包的功能和作用:

*闭包的作用是用来增强原有函数的功能
*在有些情况下,不能在原有的函数上增加内容,而闭包可以在外部函数中定义一个内部函数,并引用原来的函数,增加内容,随后返回这个内部函数


Python装饰器如何实现闭包功能?

举个例子,如下(要求不能改变sum函数):
sum函数(主函数)主要是将1到100的数都加起来。
show函数(辅助函数)中定义了一个show_in函数在里面写入增加的内容并引用sum函数,随后将show_in返回,返回后的函数是增强后的函数。


def sum():
sumdate = 0
for i in range(1,101):
sumdate += i
print(sumdate)

def show(fun):
def show_in():
print('1到100的和:')
fun()
return show_in

my_sum = show(sum) #将返回的函数给了my_sum,此时这里的my_sum就不是普通的变量了,而是一个函数
my_sum() #调用my_sum


输出结果是:
1到100的和:
5050


*还能将两个函数合并在一起使用,并产生一个新函数

import time

def odd_sum():
sumdate = 0
for i in range(1,101):
if i%2 == 1 :
sumdate += i
print(sumdate)

def even_sum():
sumdate = 0
for i in range(1,101):
if i%2 == 0 :
sumdate += i
print(sumdate)

def show(fun1,fun2):
def show_in():
print('1到100的奇数和:')
fun1()
print('1到100的偶数和:')
fun2()
return show_in

sum = show(odd_sum,even_sum) #将返回的函数给了sum
sum() #调用sum函数


输出结果是:
1到100的奇数和:
2500
1到100的偶数和:
2550



标签:功能和