有没有办法,获取到变量名,而不是值?
Topic source不知道对不对,我也是小白。
在此插入代码
b=[3,4] a=[1,2,b,5] for i in a: print(i)
1 2 [3, 4] 5
a=[1,2,'b',5] for i in a: print(i)
1 2 b 5
b [3, 4]
因垂丝汀
如: a=[1,2,b,5] b=[3,4] for i in a: print(i) 我想要打印的是'b',但实际打印的是[3,4],这个怎么办?
题主的这个需求有点出圈了。
人类肉眼一看就知道源码里有个b=[3,4]
是个列表,人类写好的代码保存在磁盘上,使用解释器来执行。
对解释器来讲它看见的是一个字节流,它没有那么机智可以一眼看穿人类的意图。
解释器得把语法树,符号表建起来它才知道人类想弄啥。
你的需求打印'b'而不是打印[3,4],这是要查符号表
的节奏。
然而机智的python早已经看穿了一切 -> Python Language Services
import symtable
st=symtable.symtable('b=[3,4]\na=[1,2,b,5]','/tmp/st.py','exec')
symbol_b=st.get_symbols()[0] #找到需要的符号
print(symbol_b.get_name()) #打印它的名字
"ipython_edit_8ns68xvz.py" 5L, 154C written
done. Executing edited code...
b #<----- 喏,先生。这是您要的b
- 1
开心Ikos
如: a=[1,2,b,5] b=[3,4] for i in a: print(i) 我想要打印的是'b',但实际打印的是[3,4],这个怎么办?