Python 从表示几何球体的类中获取TypeError,
我正在用python做一个项目,我不明白为什么我会在这个项目上出错 该项目如下Python 从表示几何球体的类中获取TypeError,,python,class,Python,Class,我正在用python做一个项目,我不明白为什么我会在这个项目上出错 该项目如下 import math class Spheres: def __init__(self,radius): self.radius = radius self.area = 0 self.volumeResult = 0 def getRadius(self): return self.radius def surfaceAr
import math
class Spheres:
def __init__(self,radius):
self.radius = radius
self.area = 0
self.volumeResult = 0
def getRadius(self):
return self.radius
def surfaceArea(self):
r = self.radius
self.area = 4 * math.pi * (r * r)
return self.area
def volume(self):
r = self.radius
self.volumeResult = (4/3) * math.pi * (r * r * r)
return self.volumeResult
def main():
r = input("enter radius of circle:")
r = int(r)
radius = Spheres(r)
v = radius.volume()
a = radius.surfaceArea()
print ("volume of circle :" , v () )
print ("Surface Area of circle:" , a () )
main()
创建具有给定半径的球体\uuuuu init\uuuuuu(self,radius)
返回此球体的半径getRadius(self)
返回球体的表面积surfaceearea(self)
面积公式为表面积=4πr2
返回球体的体积。体积公式为volume(self)
main()
方法,提示用户输入球体的半径,并告诉用户给定半径的表面积和体积import math
class Spheres:
def __init__(self,radius):
self.radius = radius
self.area = 0
self.volumeResult = 0
def getRadius(self):
return self.radius
def surfaceArea(self):
r = self.radius
self.area = 4 * math.pi * (r * r)
return self.area
def volume(self):
r = self.radius
self.volumeResult = (4/3) * math.pi * (r * r * r)
return self.volumeResult
def main():
r = input("enter radius of circle:")
r = int(r)
radius = Spheres(r)
v = radius.volume()
a = radius.surfaceArea()
print ("volume of circle :" , v () )
print ("Surface Area of circle:" , a () )
main()
当我运行代码时,它看起来像这样
输入圆的半径:5#####我在这里输入5来测试它
回溯(最近一次呼叫最后一次):
文件“C:\Users\Austin\Desktop\python奖金项目\AustinBaker-python
奖金.py“,第30行,输入
main()
文件“C:\Users\Austin\Desktop\python奖金项目\AustinBaker-python
bonus.py“,第27行,主要部分
打印(“圆的体积:,v())
TypeError:“float”对象不可调用
>>>
我不明白为什么代码根本不起作用。您的问题是:
print ("volume of circle :" , v () )
print ("Surface Area of circle:" , a () )
您正试图调用v
和a
,但这些变量不可调用,它们是float
s
In [1]: v = 12.4
In [2]: callable(v)
Out[2]: False
In [3]: type(v)
Out[3]: float
只需打印(“圆的体积:”,v)
而不必()
作为将来的参考,回溯是您的朋友:
File "C:\Users\Austin\Desktop\python bonus project\AustinBaker Python
bonus.py", line 27, in main <--- ## the line number in your program where it all went wrong
print ("volume of circle :" , v () ) <-- ## the line of code that crapped out
TypeError: 'float' object is not callable <-- ## why it crapped out
因此,这样做:
In [1]: s = Sphere(2)
In [2]: s.area
Out[2]: 50.26548245743669
In [3]: s.volume
Out[3]: 33.510321638291124
In [4]: s.radius = 3
In [5]: s.volume
Out[5]: 113.09733552923254
In [6]: s.area
Out[6]: 113.09733552923255
打印(“圆的体积:,v)
。您不能调用float