gpt4 book ai didi

python - 除了Python 3.6之外,如何使用装饰器实现监听?

转载 作者:行者123 更新时间:2023-12-01 03:26:38 27 4
gpt4 key购买 nike

我想使用装饰器listen execpt,但是function_listen中没有显示异常。希望可以监听,但是Python好像做不到

def function_listen(func):
try:
def wapper(*args,**kwargs):
return func(args,kwargs)
except Exception:
print(func.__name__+"ERROR")

@function_listen
def test():
print(1/0)
if __name__ == '__main__':
test()

C:\Python\Python36\python36.exe D:/MyCode/py/a.py

回溯(最近一次调用最后一次):

文件“D:/MyCode/py/a.py”,第 12 行,位于

测试()

类型错误:“NoneType”对象不可调用

进程已完成,退出代码为 1

最佳答案

装饰器应该返回一个函数,而你的则返回None。您还使用错误的参数调用了 func

def function_listen(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception:
print(func.__name__ + "ERROR")
return wrapper


@function_listen
def test():
print(1/0)

if __name__ == '__main__':
test()

# testERROR

关于python - 除了Python 3.6之外,如何使用装饰器实现监听?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41347001/

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