[英]OOP/Python TypeError: 'float' object is not callable
我收到TypeError:在我的Python代码上无法调用“ float”对象吗? 我想念什么? 我已经摆弄了它,还没有找到解决方案。 我也浏览了有关它的不同文章,但没有找到解决方案。 至少不是我认识或理解的一个。
class MathDojo(object):
def __init__(self, *args):
self.results = 0
def add(self, *args):
for i in args:
if type(i) == list or type(i) == tuple:
for v in i:
self.results += v
else:
self.results += i
return self
def subtract(self,*args):
for i in args:
if type(i) == list or type(i) == tuple:
for v in i:
self.results -= v
else:
self.results -= i
return self
def results(self):
print self.results
return self
md = MathDojo()
md.add([1], 3,4).add([3,5,7,8], [2,4.3,1.25]).subtract(2, [2,3], [1.1,2.3]).results()
您有一个在__init__
创建的属性results
,以及一个后来命名为试图调用该属性的方法的方法。 重命名一个或另一个,如下所示,其中我使用下划线表示属性。
也:
__init__
*args
if isinstance(i, (list, tuple))
检查多种类型 码:
class MathDojo(object):
def __init__(self):
self._results = 0
def add(self, *args):
for i in args:
if if isinstance(i, (list, tuple)):
for v in i:
self._results += v
else:
self._results += i
return self
def subtract(self,*args):
for i in args:
if if isinstance(i, (list, tuple)):
for v in i:
self._results -= v
else:
self._results -= i
return self
def results(self):
print(self._results)
return self
md = MathDojo()
md.add([1], 3,4).add([3,5,7,8], [2,4.3,1.25]).subtract(2, [2,3], [1.1,2.3]).results()
28.149999999999995
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.