两种不完美的方式: 用locals,globals 用locals获取变量列表,再遍历比较对象. def namestr(obj): ns = globals() return [name for name in namespace if ns[name] is obj] 其中is比较的是id,但如果a=b,则两者id相同. 缺点:如果两个变量a = b,则会返回locals列表中前者. 用inspect模块 import inspect import re def varname(p): fo
这是.NET反射的一个有趣小例子: 通过反射将变量值转为变量名本身. 当然要先添加命名空间:using System.Reflection; 示例代码如下: class Program { string name = "strA"; string strA = "strB"; string strB = "Hello World~"; static void Main(string[] args) { Program p = new Pro