如何在Python中获取属性背后的属性?我有以下情况:
class User(object):
def __init__(self):
self._email = None
@property
def email(self):
return self._email
@email.setter
def email(self, value):
self._email = value
我要实现的是使用反射获取电子邮件属性背后的_email属性。 非常感谢任何提示。
答案 0 :(得分:2)
没有通用的方法,因为属性不必仅仅是私有属性的代理。您可以拥有以下任何一项:
@property
def foo(self):
return 4
@property
def bar(self):
return self._bar**2
@property
def baz(self):
sys.exit(1)
@property
def spam(self):
if self._spam is None:
self._spam = self._lazily_compute_spam()
return self._spam
如果你想尝试它,你可以尝试用inspect
模块获取属性方法的源代码并解析它,或者反编译字节码,但两者都是非常脆弱的想法。