gpt4 book ai didi

python - 在python中获取装饰函数的参数

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:36 24 4
gpt4 key购买 nike

Python 装饰器中的包装器如何到达装饰函数参数的?例如:

def decorate(f):
def wrapped_function(*args):
print args
f()
return wrapped_function

@decorate
def my_function(*args):
print("Hello world")

my_function("a")


# output
('a',)
Hello world

所以,我知道 wrapped_function 是一个闭包,因为它保留了对 my_function 的访问权限,作为来自上层范围的变量。但是它怎么能在理论上提出它的论点呢?

最佳答案

这个:

@decorate
def my_function(*args):
pass

本质上与此相同:

my_function = decorate(my_function)

因此,wrapped_function 替换了 my_function

这意味着:

my_function("a")

实际上是这样做的:

wrapped_function("a")

因此您已经将参数传递给 wrapped_function。您可以查看属性 __name__

>>> my_function.__name__
'wrapped_function'

没有修饰 __name__ 将是 my_function.

关于python - 在python中获取装饰函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com