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

2024-05-17 22:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下代码:

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中的所有内容都是一个对象,那么是否有可能找到绑定到它的其他对象,在本例中是父字典。你知道吗


Tags: 对象代码功能编辑内容heredeffunction
2条回答

不,没有。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")

相关问题 更多 >