Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在修饰函数中对内置的decorator对象进行变异并返回它_Python_Oop_Arguments_State_Decorator - Fatal编程技术网

Python:在修饰函数中对内置的decorator对象进行变异并返回它

Python:在修饰函数中对内置的decorator对象进行变异并返回它,python,oop,arguments,state,decorator,Python,Oop,Arguments,State,Decorator,我想要一个decoratorbuild\u和\u fetch\u response,它构建响应并围绕准会话管理器managed\u exception,然后围绕实际的业务逻辑函数fetch: 从日期时间导入日期时间 def生成和获取响应(托管异常): def包装(*args,**kwargs): 响应={'errors':[]} 管理的\u异常(响应) 返回响应 返回包装器 @生成和获取响应 def管理_异常(响应): def outter_包装(提取): def内包装(*args,**kwra

我想要一个decorator
build\u和\u fetch\u response
,它构建响应并围绕准会话管理器
managed\u exception
,然后围绕实际的业务逻辑函数
fetch

从日期时间导入日期时间
def生成和获取响应(托管异常):
def包装(*args,**kwargs):
响应={'errors':[]}
管理的\u异常(响应)
返回响应
返回包装器
@生成和获取响应
def管理_异常(响应):
def outter_包装(提取):
def内包装(*args,**kwrags):
dt=datetime.utcnow()
尝试:
取数(dt)
例外情况除外,如e:
响应['errors'].追加(e)
返回内包装器
返回输出包装器
@管理的\u异常
def提取(dt):
打印(f'获取资源,时间为:{dt}')
断言真==假
这产生了一个相当预期的结果:

获取 {'errors':[]} >>>fetch() 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 fetch() TypeError:“dict”对象不可调用 我希望将响应对象、会话管理器和逻辑的构建保持分离,因此这是不可行的:

#我不想做的事情:
def生成和获取响应(托管异常):
def包装(*args,**kwargs):
#响应建立在内部某处
响应=管理的异常()
返回响应
返回包装器
问题: 如何实现返回一个构建在最顶层装饰器中并作为参数传递给底层装饰函数的可变对象