【发布时间】:2014-12-06 00:12:54
【问题描述】:
我想不出任何其他语言有类似的东西,但希望 python 可以做这样的事情......
我需要的是:
当引用一个对象的值时,我需要该对象返回一个浮点数。例如:
b = AnyObject(3, 4)
print(b) #Should output 0.75
我已经尝试了以下方法:
def __get__(self, instance, owner):
return float(self.param1/self.param2)
但这不起作用。像这样打印 b 时,我只得到对象的引用:
<(...) object at 0x10fa77e10>
请帮忙! 谢谢
【问题讨论】:
-
看看实现
__str__和__repr__ -
事后你还需要它成为那种类型的对象吗?
-
什么文档/博客/什么告诉你在这里实现
__get__?同时,你只是想控制这个打印的方式,还是你真的需要让它在你使用它的任何地方都像一个浮点值(所以,例如,你可以将它乘以一个 int 并得到漂浮回来)? -
@Edgar Arousiounian:谢谢!这就是我要找的,根本找不到正确的覆盖方法!
-
@WhiteBr0wnie_24:不,使用
__repr__确实不会让它在任何地方都像一个浮动,它只是让它像一个浮动打印出来 .同样,2 + b或b.hex()或abs(b)是做什么的?