【问题标题】:How to get string name of defined variable in python?如何在python中获取已定义变量的字符串名称?
【发布时间】:2020-09-22 05:00:38
【问题描述】:

我们知道在python中你可以得到一个定义函数的名字:eg.

def f(x):
    return x

print(f"we've just defined function {f.__name__}")

假设我创建了一个变量:

x = 4

现在在某个时候我想做:

print(f"you have defined a variable named {x.__name__}")

但是上面的语法给出了一个错误,因为x 没有这样的属性。

有没有办法从变量的值中获取变量的名称,就像我们可以使用已定义函数的值一样?

【问题讨论】:

  • 这能回答你的问题吗? Getting the name of a variable as a string
  • a=b=c=1。值 1 应该返回哪个名称?对象可以有多个名称。
  • 你想做什么?您的示例可以简化为print("you have defined a variable named x"),因为您已经知道变量名称x,但我怀疑这是否是您想要的。
  • 在此处添加完整代码,以便其他人了解您在做什么
  • 您的代码可以监控globals() 的内容,以查看它不知道的条目的外观。

标签: python text-extraction variable-names


【解决方案1】:

在解释器中,您可以简单地调用 dir(),它会输出当前在解释器中初始化的所有变量。您也可以通过编写脚本来显示它们

print(dir())

这个输出的一个例子如下所示:

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'math', 'numpy', 'plt', 'polar', 'r', 'theta', 'time', 'x', 'y']

请注意,这些变量中的每一个都按字母顺序列出,并且可以作为列表对象进行迭代。

【讨论】:

    【解决方案2】:

    在这个用例中使用(Key, Value)怎么样,比如字典。

    example_dict = {
      'x': '1',
      'y': '1'
    }
    

    我们可以通过调用按键轻松获取变量名。

    for key, value in example_dict.items() :
       print('key name is {key}')
    

    假设我们可以按值获取所有键

    def get_variable_name(get_value, my_dict) -> list:
        return_var_list = []
        for key, value in my_dict.items() :
            if value == get_value:
                return_var_list.append(value)
        return return_var_list 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 2022-12-15
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多