gpt4 book ai didi

Python - 获取静态信息

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:15 25 4
gpt4 key购买 nike

我必须从一个“模块”获取静态信息到另一个。我正在尝试使用有关我们正在记录的代码位置的信息来编写记录器。例如,在一些文件中:

LogObject.Log('Describe error', STATIC_INFORMATION)

静态信息是类名、文件名和函数名。我从中得到它:

__file__ 
self.__class__.__name__
sys._getframe().f_code.co_name

但我不想在记录期间写入此变量。我可以创建一些函数并调用它吗?例如:

LogObject.Log('Describe error', someFunction())

我如何使用它来获取静态信息?

最佳答案

我不认为“静态”是您要寻找的世界。如果我理解正确的话,您想编写一个函数来返回调用者的文件名、类名和方法名。

基本上,您应该使用 sys._getframe(1) 访问前一帧,然后从那里开始工作。

例子:

def codeinfo():
import sys
f = sys._getframe(1)

filename = f.f_code.co_filename
classname = ''

if 'self' in f.f_locals:
classname = f.f_locals['self'].__class__.__name__

funcname = f.f_code.co_name

return "filename: %s\nclass: %s\nfunc: %s" % (filename, classname, funcname)

然后从你可以写的某个地方的方法

logger.info("Some message \n %s" % codeinfo())

关于Python - 获取静态信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903497/

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