擅长:python、mysql、java
<p>这里有一个解决方案,你可以输入更多的信息来调用它。它依赖于<a href="http://docs.python.org/library/functions.html#locals" rel="nofollow">locals</a>内置函数:</p>
<pre><code>def print_key(dictionary, key):
print key, '=', dictionary[key]
foo = 7
print_key(locals(), 'foo')
</code></pre>
<hr/>
<p>使用<a href="http://docs.python.org/library/inspect.html" rel="nofollow">inspect</a>模块,还可以使用您提到的语义的<code>echo</code>。但是,请务必阅读inspect文档中的警告。这是一种丑陋的不可移植的黑客(它不适用于Python的所有实现)。请确保仅将其用于调试。在</p>
<p>其思想是研究调用函数的<a href="http://docs.python.org/library/functions.html#locals" rel="nofollow">locals</a>。inspect模块只允许:调用由<code>f_back</code>属性链接在一起的帧对象表示。每个帧的局部和全局变量都是可用的(也有内置变量,但不太可能需要打印它们)。在</p>
<p>您可能希望显式删除任何引用帧对象以防止引用循环,如<a href="http://docs.python.org/library/inspect.html#the-interpreter-stack" rel="nofollow">inspect docs</a>中所述,但这并不是绝对必要的,垃圾回收迟早会释放它们。在</p>
^{pr2}$