关于python:获取存储变量或属性的名称

Get the name under which a variable or property is stored

本问题已经有最佳答案,请猛点这里访问。

是否有方法获取存储变量或属性的名称?

类似:

1
2
3
4
5
6
class X:
  def __init__(self):
    self.name = __name_under_which_I_m_stored__

jeff = X()
print(jeff.name) # yields 'jeff'

很肯定这是不可能的,但你永远不知道…此外,我知道这个名字可能是未指明的(do_something(X())或模棱两可的(jeff=frank=X())。


python vm无法知道名称的字面名称。对于对象,可以通过__name__属性访问名称。

如果您想这样做,您需要实现名称到值的映射。你可以用dict来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class X:
  def __init__(self):
    self.names = {};

  def set(self, name, value):
    self.names[name] = value

  def get(self, name):
      return (name, self.names[value])



jeff = X()
jeff.set("name","jeff");
print(jeff.get("name")) # yields ("name","jeff")