2017-02-16 70 views
1

我不知道我在写我在正确的方法程序,但我有这样的事情:蟒蛇得到引用的对象名

unit_dict = {} 
test_dict = {'a':unit_dict} 

现在,当我访问test_dict['a']我得到的引用(或者是它的指针)到正确的字典,但有没有办法从test_dict以某种方式获取原始对象名称?

像:

magick_function(test_dict['a']) 
res > unit_dict = {} 
+1

'test_dict = {'a':unit}'你的意思是'test_dict = {'a':unit_dict}'? – enderland

+0

是的,谢谢,更正 – kakk11

+0

第二个答案可能是照亮:http://stackoverflow.com/questions/2553354/how-to-get-a-variable-name-as-a-string-in-python – Will

回答

1

在某些情况下,你可以做一些脏globals()喜欢,但我怀疑,有没有一种更好的方式无论你是想在更大范围内实现:

def magic(o): 
    for k, v in globals().iteritems(): 
    if v is o: 
     return k 
    return None 

> magic(test_dict['a']) 
'unit_dict' 
+0

如果更改unit_dict,它似乎不起作用。 – kakk11

+1

“改变”是什么意思?重新分配? – schwobaseggl

+0

我的不好,与python2很好 – kakk11