我在用 C++ 开发时使用这个非常有用的宏:
#define DD(a) std::cout << #a " = [ " << a << " ]" << std::endl;std::cout.flush();
你能帮我用python实现同样的想法吗?我不知道如何使用 python 函数实现 #a
...
最佳答案
作为@Andrea Spadaccini和 @adirau指出,将值可靠地映射回 Python 变量名是不可能的。您可以遍历所有 namespace 以查找引用给定值的变量名,但这会与系统发生冲突并容易返回错误的变量名。
只传递变量名要容易得多:
import inspect
def pv(name):
frame,filename,line_number,function_name,lines,index=inspect.getouterframes(
inspect.currentframe())[1]
# print(frame,filename,line_number,function_name,lines,index)
val=eval(name,frame.f_globals,frame.f_locals)
print('{0}: {1}'.format(name, val))
a=5
pv('a')
产量:
a: 5
关于c++ - 你能把这个调试宏从 C++ 翻译成 Python 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5503363/