假设我有以下代码:
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中的所有内容都是一个对象,是否有可能找到绑定到它的其他对象,在这种情况下是父词典.
不,没有.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)
现在你也有了字典本身.
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |