这个python程序设计用于查找圆的面积和周长,但是由于某种原因,当我试图执行area方法时,我得到了一个TypeError: 'float' object is not callable
错误
class Circle:
pi = 3.14
def __init__(self, radius=1):
self.radius = radius
self.area = radius * radius * self.pi
def circum(self):
return self.pi * self.radius * 2
my_circle = Circle(30)
my_circle.area()
错误
Traceback (most recent call last):
File "test.py", line 13, in <module>
my_circle.area()
TypeError: 'float' object is not callable
Circle.area
不是一个方法。这是一个简单的变量。你可以用my_circle.area
读它如果你想让它成为一个函数,那么你可以改变半径并重新计算,那么你需要让它成为一个函数
说明:
问题出在哪里很简单
self.area
是在对象中存储和初始化的变量,而不是函数。因此,您可以直接访问它,而无需在函数调用的末尾使用()
(或初始化类的对象,请参阅附加说明)。检查下面的代码和注释修改:
根据您在描述中提到的内容,这是您应该如何理想地定义您提到的类-
思维过程
我想解释一下错误的含义。 在python中,有可调用和非可调用。不仅可以调用函数,还可以调用类的实例
float对象不可调用(self.area为float)。如果类定义了
__call__
方法,则该类是可调用的如果调用1.1(),将得到相同的错误。因为1.1是float类型,并且float没有
__call__
方法看看下面的例子
callable_area(1.1)
不是函数,而是类的实例,但我仍然可以这样调用它callable_area(1.1)(2.2)
现在可能你得到的错误只是一个无意识的错误,你把它转换成函数,或者去掉它前面的空括号,然后去掉错误,但是知道错误意味着什么也是个好主意
相关问题 更多 >
编程相关推荐