int、float、str などから継承しているかのように、インスタンスが直接呼び出されたときに値を返すクラスが必要です。関数をオーバーロードしていると思いますか??? :
class A(object):
def __init__(self, value):
self.value = value
def somefunction(self):
if isintance(self.value, int):
return 5
else:
return 'something else'
def __???__(self):
return self.value
a = A(2)
a + 5 # 7
a.somefunction() # 5
a = A('foo')
a + "bar" # 'foobar'
a.somefunction() # 'something else'
値が異なる型になる可能性があるため、単純に int をサブクラス化することはできません。
これは実行可能ですか?おそらく、これができないのには十分な理由があるのでしょうが、手遅れで、思いつきません。前もって感謝します。