gpt4 book ai didi

python - 记录每个功能的每次登录/退出

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:07 25 4
gpt4 key购买 nike

目前,我通常会在我的函数中添加一个日志行,其中包含输入和返回的变量的详细信息。不过,我正在寻找一种优雅的解决方法。

有没有办法记录函数的每个输入以及使用某种形式的魔术方法返回的内容?

下面是一个例子,

class exampleclass(object):
def __init__(self,size=False):
self.size = size

def funt1(self,weight=None):
return weight

def funt2(self,shape=None):
return shape

在这里,我想使用尽可能少的代码记录返回的变量以及为每个函数输入的内容。

最佳答案

有一个概念decorators in python .它们可以帮助您抽象出您想要注入(inject)的任何功能的通用代码。制作一个名为 log 的装饰器,如下所示:

import logging
from functools import wraps

def log(func):
@wraps(func)
def wrapper(self, *args, **kwargs):
logging.debug("args - %s", str(args))
logging.debug("kwargs - %s", str(kwargs))
response = func(self, *args, **kwargs)
logging.debug("response - %s", str(response))
return response
return wrapper

现在,您可以将此装饰器用于任何功能,如下所示:

@log
def funt1(self,weight=None):
return weight

上面的代码将仅用 1 行代码记录所有参数及其返回值。

Here是一个关于理解装饰器的好博客。

关于python - 记录每个功能的每次登录/退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39910941/

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