gpt4 book ai didi

Python 装饰器作用域问题

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

我有一个静态类,它有一个方法 hello。我想在 hello 之前运行装饰器方法 bar。然而,使用下面的代码我总是得到一个“名称'bar'未定义”的错误。有谁知道发生了什么事?谢谢!

class foo():
@staticmethod
@bar
def hello():
print "hello"

def bar(fn):
def wrapped():
print "bar"
return fn()
return wrapped

foo.hello()

最佳答案

因为它还没有定义。此外,那个装饰器根本不应该是一个方法。

def bar(fn):
# ...

class foo(object):
@staticmethod
@bar
def hello():
# ...

# ...

此外,不要使用静态方法,除非您真的知道自己在做什么。改为免费功能。

关于Python 装饰器作用域问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150667/

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