在Python中,传递dict键时是否可以使用外部函数来查找该字典中的其他键?

use*_*208 2 python dictionary

假设我有以下代码:

def function(k):
    # do something here

d = { 0: 'a', 1: 'b', 2: 'c' }

function(d[0])
Run Code Online (Sandbox Code Playgroud)

是否有可能function找出其中的其他键是d什么?比如有这样的事情:

def function(k):
    print k.__parent__.keys()
Run Code Online (Sandbox Code Playgroud)

我不认为有这样的功能(因为这将是一个重大的安全问题).但是我对技术实现知之甚少.

编辑:动机是如果Python中的所有内容都是一个对象,是否有可能找到绑定到它的其他对象,在这种情况下是父词典.

Mar*_*ers 5

不,没有.Python中的值不会跟踪它们的来源,也不会彼此"绑定".容器可以引用其他值,但由于可以从多个位置引用任何值,因此跟踪反向引用没有意义.

function()观点来看,以下两个调用之间绝对没有区别:

function(d[0])
function('a')
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,k函数都绑定到python字符串值,'a'.

如果在函数中需要更多上下文,则需要显式传递:

def function(key, mapping):
    k = mapping[key]

function(0, d)
Run Code Online (Sandbox Code Playgroud)

现在你也有了字典本身.