我想改变
float.__str__
Run Code Online (Sandbox Code Playgroud)
float类型的构建函数(python 2)
我试图扩展这个类.
class SuperFloat(float):
def __str__(self):
return 'I am' + self.__repr__()
Run Code Online (Sandbox Code Playgroud)
但是,当我添加它时,它变成了正常的浮动
egg = SuperFloat(5)
type(egg+egg)
Run Code Online (Sandbox Code Playgroud)
返回浮动
我的最终目标也是
egg += 5
Run Code Online (Sandbox Code Playgroud)
保持超级浮动
class SuperFloat(float):
def __str__(self):
return 'I am ' + self.__repr__()
def __add__(self, other):
return SuperFloat(super(SuperFloat, self).__add__(other))
__radd__ = __add__
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)