扩展Python内置类:float
我想要改变
float.__str__
内置浮点数类型(python 2)的功能
我尝试去扩展这个类。
class SuperFloat(float):
def __str__(self):
return 'I am' + self.__repr__()
但是,当我添加它的时候,它变成了一个普通的浮点数
egg = SuperFloat(5)
type(egg+egg)
返回的是浮点数
我最终的目标是让它也
egg += 5
保持为一个超级浮点数
2 个回答
5
class SuperFloat(float):
def __str__(self):
return 'I am ' + self.__repr__()
def __add__(self, other):
return SuperFloat(super(SuperFloat, self).__add__(other))
__radd__ = __add__
In [63]: type(5+egg)
Out[63]: __main__.SuperFloat
In [64]: type(egg+5)
Out[64]: __main__.SuperFloat
In [65]: type(egg+egg)
Out[65]: __main__.SuperFloat
In [67]: egg += 5
In [69]: type(egg)
Out[69]: __main__.SuperFloat
这段内容是来自StackOverflow的讨论,涉及一些编程问题。具体的代码块内容没有提供,但通常这些代码块会包含一些示例代码或者相关的技术细节。
在编程中,大家常常会遇到各种各样的问题,像是如何解决某个错误,或者如何实现某个功能。StackOverflow是一个很好的地方,程序员们可以在这里提问和回答问题,分享自己的经验。
如果你是编程新手,看到这些讨论时,不用担心,慢慢来,理解每个概念和代码是一个过程。可以先从简单的例子开始,逐步深入。
记得多动手实践,这样才能更好地理解编程的世界!