这可能已经涵盖了以前,但我有问题调用嵌套函数为我的discord机器人。这是为了倒计时从3到0和显示输出给用户在每一个阶段。我有异步命令的工作,所以我想我只会使用打印测试,这就是为什么没有可见的。
如果有人能看到我的代码的问题,你能让我知道,因为我撞上了一堵墙。
def count(countfunc):
def wrapper(*args, **kwargs):
wrapper.counter = 3
wrapper.start = 3
wrapper.counter -= 1
if wrapper.counter == 0:
print(f"has ran out of warnings & is now banned on the server for 1 day")
else:
print(f"has", wrapper.counter ,"warnings left")
return countfunc(*args, **kwargs)
return wrapper("*args, **kwargs")
@count def countfunc(wrapper):
return
print (countfunc)
我尝试从 Package 器if语句调用打印值。当在count函数/ Package 器函数内调用时可以工作,但当在其外部调用时只显示“None”。我收集这是由于它无法读取函数值,但不100%确定如何修复。
先谢谢你,本
1条答案
按热度按时间j5fpnvbx1#
在您提供的代码中,wrapper函数没有返回任何值,因此当调用countfunc函数时,它返回None。这就是print(countfunc)语句的输出为None的原因。
为了解决这个问题,我在wrapper函数的末尾添加了一个return语句,这样当countfunc函数被调用时,它会返回它的值,这允许您从countfunc函数中访问wrapper.counter和wrapper.start的值,并使用这些值来显示所需的输出。