假设我有以下代码:
def function(k):
# do something here
d = { 0: 'a', 1: 'b', 2: 'c' }
function(d[0])
function
是否可以找出d
中的其他键?例如,有这样的事情:
def function(k):
print k.__parent__.keys()
我认为没有这样的功能(因为这将是一个重大的安全问题)。但是我对技术实现知之甚少。
编辑:动机是如果Python中的所有内容都是对象,是否有可能找到绑定到它的其他对象,在本例中是父词典。
答案 0 :(得分:5)
不,没有。 Python中的值不会跟踪它们的来源,也不会彼此“绑定”。容器可以引用其他值,但由于任何值都可以从多个位置引用,因此跟踪反向引用没有任何意义。
从function()
的角度来看,以下两次调用之间绝对存在 no 差异:
function(d[0])
function('a')
在这两种情况下,函数中的k
都绑定到python字符串值'a'
。
如果在函数中需要更多上下文,则需要明确地传递它:
def function(key, mapping):
k = mapping[key]
function(0, d)
现在你也有了字典。
答案 1 :(得分:0)
尝试:
def function(dict, letter):
for thing in dict:
thing_string = str(thing)
if str(letter) in thing_string:
print dict[thing]
my_dict = { 0: 'a', 1: 'b', 2: 'c' }
function(my_dict, "d")