如何在python中打印变量名?

发布于 2021-02-02 23:15:44

假设我有一个名为choice它的变量等于2。我将如何访问该变量的名称?相当于

In [53]: namestr(choice)
Out[53]: 'choice'

用于制作字典。有一个很好的方法可以做到这一点,而我只是想念它。

编辑:

因此,这样做的原因是。我正在运行一些数据分析的东西,我在运行时使用多个我想调整或不调整的参数来调用程序。我从格式为.config的文件中读取了上次运行中使用的参数

filename
no_sig_resonance.dat

mass_peak
700

choice
1,2,3

当提示你输入值时,将显示先前使用的值,并且空字符串输入将使用先前使用的值。

之所以出现我的问题,是因为在编写将这些值扫描到的字典时。如果需要一个参数,我运行get_param它访问文件并找到参数。

我认为我会通过阅读一起避免这个问题。config文件一次,然后从中产生字典。我本来是出于……我不再记得的原因避免了这种情况。完美的情况来更新我的代码!

关注者
0
被浏览
135
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果你坚持,这是一些基于检查的可怕解决方案。

    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)
    

    我希望它能激发你重新评估你遇到的问题并寻求另一种方法。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看