在Python中,当传递dict键时,外部函数是否可以在该字典中找到其他键?
假设我有以下代码:在Python中,当传递dict键时,外部函数是否可以在该字典中找到其他键?,python,dictionary,Python,Dictionary,假设我有以下代码: def function(k): # do something here d = { 0: 'a', 1: 'b', 2: 'c' } function(d[0]) 功能是否可以找出d中的其他键?例如,有没有这样一件事: def function(k): print k.__parent__.keys() 我认为没有这样的功能(因为这将是一个重大的安全问题)。然而,我对技术实现了解不多,无法确定这一点 编辑:动机是如果Python中的所有内容都是对象,
def function(k):
# do something here
d = { 0: 'a', 1: 'b', 2: 'c' }
function(d[0])
功能是否可以找出d
中的其他键?例如,有没有这样一件事:
def function(k):
print k.__parent__.keys()
我认为没有这样的功能(因为这将是一个重大的安全问题)。然而,我对技术实现了解不多,无法确定这一点
编辑:动机是如果Python中的所有内容都是对象,那么是否可以找到绑定到它的其他对象,在本例中是父字典 没有。Python中的值不跟踪它们的来源,也不相互“绑定”。容器可以引用其他值,但由于任何值都可以从多个位置引用,因此没有必要回溯引用
从function()
function(d[0])
function('a')
在这两种情况下,函数中的k
都绑定到python字符串值'a'
如果在函数中需要更多上下文,则需要显式传入:
def function(key, mapping):
k = mapping[key]
function(0, d)
现在你也有了字典本身。试试:
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")
谢谢第一部分回答了我的问题。我编辑了我的问题以便更清楚。