我有一个关于退回包装纸的问题,为什么我必须退回它以及我在哪里退回? 我知道当我返回包装器时它会返回一个指针,但它的原因在哪里以及原因是什么。我不应该在像 def deco(fun) 这样的 deco 函数中调用它:.........wrapper().
import time
def deco(fun) :
def wrapper(*args) :
ba = time.time()
giden = fun(*args)
so = time.time()
print(f"{so-ba} saniye geçti")
return giden
return wrapper
@deco
def ortalama (liste):
t = 0
for i in liste:
t += i
return t
liste = list(range(0,10))
a = ortalama(liste)
print(a)
答案 0 :(得分:0)
deco
接受一个函数作为参数并返回一个函数。
当您应用它时,ortalama
函数将替换为 deco(ortalama)
。
答案 1 :(得分:0)
装饰器函数封装了目标函数,可以操作它们的输入和输出值。返回内部包装函数替换目标函数内。
使用装饰器注解,函数被包装函数改变。
> print(ortalama)
<function deco.<locals>.wrapper at 0x7f7d6beea048>
没有装饰器,函数仍然是定义的
> print(ortalama)
<function ortalama at 0x7f7d6beea158>