3 回答
TA贡献1853条经验 获得超18个赞
我认为您在使用类时可能会产生误解。将类视为对象的模板。当您调用 时Circle(...),您将创建该对象的一个实例,并且一个类具有多个实例是完全可以接受的。
在您的示例中,考虑为您的三个输入(或多个输入)中的每一个制作三个圆圈,然后这会简化您的课程,因为您不需要任何列表。
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius**2
然后您的主要代码将处理每个输入作为它自己的圈子:
inputradiusstr="1,2,3"
list_radius=inputradiusstr.split(',')
for radius in list_radius:
c = Circle(int(radius))
print(c.area())
请注意,我们需要将半径从字符串类型转换为整数,以便我们可以对其进行计算。
如果您需要计算您创建的圈子的数量,那么这只是len(list_radius).
TA贡献1812条经验 获得超5个赞
类型转换将适用于您的情况。
inputradiusstr="1,2,3"
list_radius=list(map(int,inputradiusstr.split(',')))
obj2=Circle(list_radius)
print(obj2.area())
你的班级有一些缩进不匹配。我认为它只是在输入问题时。
TA贡献1818条经验 获得超3个赞
inputradiusstr="1,2,3"
list_radius=[float(item) for item in inputradiusstr.split(',')]
因此,半径可以是浮点数而不是字符串。
def area(self):
return [3.14*self.radius**2 for i in self.radius]
#return 3.14 * self.radius **2
在列表理解中,它应该是3.14*i**2.
添加回答
举报
