これは、異なる文字列表現でのみ組み込み型を使用したい場合によくあるシナリオです。たとえば、時間測定値を格納する変数を考えてみましょう。通常、文字列に強制すると HH:MM:SS などの形式の文字列が生成されることを除いて、すべての意図と目的で int または float とまったく同じように動作する型が必要です。
簡単なはずです。残念ながら、以下は機能しません
class ElapsedTime(float):
def __str__(self):
return 'XXX'
演算の結果は float 型になるためです。私が知っている解決策は、数十個のメソッドを書き直すことですが、これは最も非現実的です。他に方法がないなんて信じられない。これらの状況で使用することを意図した標準ライブラリに、サブクラスに適した UserInt、UserFloat 型がないのはなぜですか?