我想要一个类,它的实例在直接调用时返回一个值,就好像它们继承自 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 子类化,因为值可能是不同的类型。
这是可行的吗?也许有一个很好的理由不能这样做,但是已经晚了,我想不到。提前致谢。