gpt4 book ai didi

python - 在 Python 装饰器中获取类

转载 作者:太空狗 更新时间:2023-10-30 02:50:30 25 4
gpt4 key购买 nike

在这段代码中:

def online_only(func, self):
def f(*args, **kwargs):
if self.running:
return func(*args, **kwargs)
else:
return False
return f

class VM(object):
@property
def running(self):
return True

@property
@online_only
def diskinfo(self):
return True

我希望 diskinfo 仅在 VM.running 返回 True 时运行。如何让 online_only 能够读取 self.running

最佳答案

self 作为第一个参数传递给包装函数,所以在 f 中只对第一个参数进行特殊处理:

def online_only(func):
def f(self, *args, **kwargs):
if self.running:
return func(self, *args, **kwargs)
else:
return False
return f

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

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