takes 0 positional arguments but 1 was given (python错误记录)
C=Circle(2)
print(C.Area())
R=Rectangle(2,4)
print(R.Perimeter())
实现的是一个关于圆和长方形的类的练习
报错的代码:print(C.Area())
TypeError: Area() takes 0 positional arguments but 1 was given
.
错误原因:在定义其中Area()函数时 写成了def Area() 应该是def Area(self)
初学,定义函数时老忘了加self
.
搞笑的是改的时候 顺便发现了我的__init__ 函数里 赋值语句self.length=int(length)
有的加了self. ,有的没加!
看来还是太不熟了 要多写写代码练练~
顺便附上代码和搞笑的调试过程
class GeometricObject():
color = 'red'
class Circle(GeometricObject):
def __init__(self,radius):
self.radius = radius
def Area(self):#求面积
self.area=round(int(self.radius)*3.14,2)
return self.area
class Rectangle(GeometricObject):
def __init__(self,length,breadth):
self.length=int(length)
self.breadth=int(breadth)
def Perimeter(self):#求周长
self.P=round(self.length*2+self.breadth*2,2)
return self.P
C=Circle(2)
print(C.Area())
R=Rectangle(2,4)
print(R.Perimeter())
调试过程
原本以为简简单单的代码,改了好几次错,自己都想笑 哈哈哈 还是太菜