有没有办法获得存储变量或属性的名称?
类似的东西:
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()
)。
答案 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")