我收到一个TypeError:'float'对象在我的Python代码中无法调用?我错过了什么?我已经摆弄它并且没有找到解决方案。我也浏览过关于它的不同帖子并且没有找到解决方案。至少没有一个我认识或理解的。
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()
答案 0 :(得分:1)
您在results
中创建了一个属性__init__
,后来的方法命名为尝试调用该属性的相同内容。重命名下面的一个或另一个,我使用下划线来表示属性。
此外:
*args
__init__
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