gpt4 book ai didi

Python 装饰器使用换行,但名称仍然发生变化

转载 作者:行者123 更新时间:2023-12-01 06:54:52 24 4
gpt4 key购买 nike

我有以下错误处理程序(实际上是旁路器)装饰器 -

import functools

def exception_safe(*args):
ErrList = tuple(args)
def decorator(f):
@functools.wraps(f)
def wrapper(*args, **kwargs):
if ErrList:
try:
result = f(*args, **kwargs)
print(f'No error!')
return result
except ErrList as err:
print(f'got error!')
else:
try:
result = f(*args, **kwargs)
print(f'No error!')
return result
except Exception as err:
print(f'got error!')
return wrapper
return decorator

尽管我仍然从我的 pytests 中收到下一个断言错误,告诉我函数名称是“decorator”:

pytest stack

这可能是什么原因?我确实尝试了一切..

最佳答案

exception_safe 需要给出参数,即使没有任何参数:

@exception_safe()
def function():

关于Python 装饰器使用换行,但名称仍然发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58856882/

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