能否访问存储在Python描述符中的状态?
例如:
class Price(object):
def __init__(self, dollars):
self.dollars = dollars
class Convert(object):
def __init__(self, rate):
self.rate = rate
def __get__(self, instance, owner):
return instance.dollars * self.rate
euros = Convert(0.75)
p = Price(20.0)
print p.dollars
print p.euros
功能正常,但我想获取存储在管理 p.euros
的 Convert
描述符中的 rate
。这可能吗?显然,p.euros.rate
不起作用,但我不确定如何获取 Converter 的 euros 实例。
(我意识到在这个简化的例子中,将欧元作为属性并将汇率放在价格上是有意义的,这只是一个简单的例子)
__dict__
可以完成任务,但这是不符合Python风格的,也不是描述符的预期使用方式。只是说一下。 - yak__dict__
是获取描述符对象的唯一方法,它不是实现细节 - 语言规范规定了获取对象和类属性的方式。因此,这并没有什么“非Python式”的东西。 - jsbueno