当您只想使用具有不同字符串表示的内置类型时,这是一种常见的情况。例如,考虑一个变量来存储时间测量。通常,对于所有意图和目的,您都需要一种行为与 int 或 float 完全相同的类型,除非强制转换为 string 时会生成格式为 HH:MM:SS 或类似内容的字符串。
这应该很容易。不幸的是,以下不起作用
class ElapsedTime(float):
def __str__(self):
return 'XXX'
因为操作的结果将是浮点类型。我知道的解决方案是重写几十种方法,但这是最不切实际的。我不敢相信没有别的办法。为什么标准库中没有用于这些情况的子类友好的 UserInt、UserFloat 类型?