获取存储变量或属性的名称

时间:2016-10-09 18:15:45

标签: python

有没有办法获得存储变量或属性的名称?

类似的东西:

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())。

1 个答案:

答案 0 :(得分:3)

Python VM无法知道名称的文字名称。对于对象,您可以通过__name__属性访问该名称。

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

执行此操作
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")