擅长:python、mysql、java
<p>如果你坚持,这里有一些可怕的基于检查的解决方案。</p>
<pre><code>import inspect, re
def varname(p):
for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line)
if m:
return m.group(1)
if __name__ == '__main__':
spam = 42
print varname(spam)
</code></pre>
<p>我希望它能激励你重新评估你的问题,并寻找另一种方法。</p>